「feh」を使ってスライドショーをレンダリングし、写真に日付スタンプを表示するにはどうすればよいですか?

「feh」を使ってスライドショーをレンダリングし、写真に日付スタンプを表示するにはどうすればよいですか?

私の写真をスライドショーとして表示し、各写真の日付を表示したいです。私はそれを試しfehましたexif=1

  • 見つかり--infoましたが--drawexif動作できません。

    feh -d  --draw-exif '-Directory<DateTimeOriginal>' -F --recursive Pictures/lokalt/pictures/
    

    画像名と画像パスが左上に表示されます。みんなEXIFデータは左下にあります。

  • 「どこでも」見られる例を試してみました。

    feh --info "exifgrep '(Model|DateTimeOriginal|FNumber|ISO|Flash)' %F | cut -d . -f 4-" .
    

    これはテキストのない画像を示しており、終了すると2つのコメントがあることがわかります。

    sh: 1: exifgrep: not found
    sh: 1: exifgrep: not found
    

写真の日付のみを表示するには、EXIF部分をどのようにフォーマットする必要がありますか?それとも別の方法がありますか?

ベストアンサー1

私は今週末に同じ質問をして座って狂った人のように答えを探していましたが、偶然この記事を見つけました。ついに自分で問題を解決した後、私は今ここに戻って、他の人も同じ問題に遭遇した場合に備えて、この質問に答えるためにアカウントを作成しました。

多くのものは実際には非常に簡単です。 Exifgrepを含むExciprobeプログラムをインストールする必要があります。

sudo apt-get install exifprobe

--infoコマンドはシェルでコマンドを実行するため、これが正常に機能するにはEXIFprobeをインストールする必要があります。 exifprobe/exifgrep のビルドがシェルで動作しません。たとえば、--infoを使用すると、デフォルトですべてのコマンド出力を印刷できます。feh --info 'echo "this will be printet on the image"' ./

exifprobeをインストールしたら、次のfehコマンドを実行して必要な日付情報を取得できます。例の切り取りコマンドは、必要に応じてユーザーが直接追加できるように、日付の横に表示されるいくつかのテキストを単に削除します。

feh --info "exifgrep 'DateTimeOriginal' %F"

しかし、

私は実際に別の解決策を見つけました。望むより、exifgrepはパス名のスペースを処理できません。したがって、パス名がある場合は機能せず、"~/Photos/My Favorit Cats/cat.jpg" パス名をどのようにエスケープしようとしても機能しません。

exiftool代わりに、以下からインストールできることがわかりました。

sudo apt-get install exiftool

exiftoolスペースを正しく処理し、多くの素晴らしいタスクを実行できます。マニュアルを確認してください。最も重要なのは、写真のすべてのタグ名をリストすることです。日付より多くが必要な場合は、以下を作成してください。

exiftool -s "~/Photos/My Favorit Cats/cat.jpg" 

-sは実際のタグ名を取得するために使用され、タグ名がない場合は人間が読める名前を取得します。

その後、このツールを使用して以下のfehコマンドを使用しました。最後のドットスラッシュを参照してください。これは、単にこのフォルダ内のすべての写真を表示することを意味します。また、cutコマンドは、文字列出力から実際の日付の前にあるラベル名を削除します。

feh --info 'exiftool -DateTimeOriginal %F | cut -d : -f 2-' ./

これが同じ問題を探している他の人に役立つことを願っています。

おすすめ記事