画像を exiv2 または imagemagick にパイプし、EXIF タグを取り除き、さらに操作するためにそれを stdout にパイプアウトするにはどうすればよいですか?
私は次のようなことを望んでいます:
exiv2 rm - - | md5sum
stdin を介して提供された画像を出力し、その md5sum を計算します。
あるいは、これを行うためのより速い方法はありますか?
画像を exiv2 または imagemagick にパイプし、EXIF タグを取り除き、さらに操作するためにそれを stdout にパイプアウトするにはどうすればよいですか?
私は次のようなことを望んでいます:
exiv2 rm - - | md5sum
stdin を介して提供された画像を出力し、その md5sum を計算します。
あるいは、これを行うためのより速い方法はありますか?
exiv2
出力する方法を見つけることができませんでしたstdout
-既存のファイルを上書きしたいだけです。小さなbash
スクリプトを使用して一時ファイルを作成し、その md5 ハッシュを取得できます。
image.sh :
#!/bin/bash
cat <&0 > tmp.jpg # Take input on stdin and dump it to temp file.
exiv2 rm tmp.jpg # Remove EXIF tags in place.
md5sum tmp.jpg # md5 hash of stripped file.
rm tmp.jpg # Remove temp file.
次のように使用します。
cat image.jpg | image.sh
convert
次のコマンドを使用して、代わりに ImageMagick を使用してこれを行うことができます。
cat image.jpg | convert -strip - - | md5sum
警告:
を使用して EXIF タグの画像をconvert
削除すると、exiv2
. これがなぜなのか、これら 2 つのコマンドで何が違うのか正確にはわかりません。
からman exiv2
:
rm ファイルから画像メタデータを削除します。
からman convert
:
-すべてのプロフィールとコメントのストリップ画像
使用できます( https://stackoverflow.com/a/2654314/3565972exiftool
からアイデアを得ました):
cat image.jpg | exiftool -all= - -out - | md5sum
これも、何らかの理由で、他の 2 つとはわずかに異なる画像サイズを生成します。
言うまでもなく、3 つのメソッド ( exiv2
、convert
、exiftool
) はすべて、異なる md5 ハッシュで出力を生成します。これがなぜなのかわかりません。しかし、方法を選んでそれに固執すれば、それはあなたのニーズに対して十分に一貫したものになるでしょう。