16

Web サイトで使用する画像のサイズを小さくするために、品質を 80 ~ 85% に落としました。これにより、画像サイズがかなり縮小されます。

品質を落とさずにサイズをさらに縮小するために、友人は、カメラからの生の画像には Exif 情報と呼ばれるメタデータがたくさんあることを指摘しました。この Exif 情報は Web サイトの画像に保持する必要がないため、削除できます。これにより、サイズがさらに 3 ~ 10 kB 縮小されます。

しかし、Python コードでこれを行うための適切なライブラリを見つけることができません。関連する質問を閲覧し、いくつかの方法を試しました。

元の画像: http://mdb.ibcdn.com/8snmhp4sjd75vdr27gbadolc003i.jpg

  1. モグリファイ

    /usr/local/bin/mogrify -strip filename
    

    結果: http://s23.postimg.org/aeaw5x7ez/8snmhp4sjd75vdr27gbadolc003i_mogrify.jpg この方法は、サイズを 105 kB から 99.6 kB に縮小しますが、色の品質も変更します。

  2. Exifツール

    exiftool -all= filename
    

    結果: http://s22.postimg.org/aiq99o775/8snmhp4sjd75vdr27gbadolc003i_exiftool.jpg この方法は、サイズを 105 kB から 72.7 kB に縮小しますが、色の品質も変更します。

  3. この回答では、Exif 情報を操作する方法について詳しく説明していますが、それを使用して情報を削除するにはどうすればよいですか?

画像の色、寸法、その他のプロパティを変更せずに、余分なメタデータをすべて削除するのを手伝ってくれる人はいますか?

4

4 に答える 4

38
from PIL import Image

image = Image.open('image_file.jpeg')

# next 3 lines strip exif
data = list(image.getdata())
image_without_exif = Image.new(image.mode, image.size)
image_without_exif.putdata(data)

image_without_exif.save('image_file_without_exif.jpeg')
于 2014-04-23T16:14:09.427 に答える
12

私にとっては、gexiv2うまくいきます:

#!/usr/bin/python3

from gi.repository import GExiv2

exif = GExiv2.Metadata('8snmhp4sjd75vdr27gbadolc003i.jpg')
exif.clear_exif()
exif.clear_xmp()
exif.save_file()

リンクしているが、すべての回答を読んでいないpython の Exif 操作ライブラリも参照してください;)

于 2013-11-05T10:51:38.540 に答える
8

Python Image Lirbary (PIL)を使用してイメージを読み込んでから、別のファイルに再度保存してみてください。これにより、メタデータが削除されます。

于 2013-11-05T10:22:09.130 に答える