私は編集後に画像を編集するために枕を使用しています。保存したファイルにmd5メソッドを使用します。ファイルを保存するのに0.012秒かかります。私は長すぎます。ファイルに保存してImageオブジェクトのmd5をカウントする方法はありますか?ディスクに保存せずにファイルのmd5を取得する
1
A
答えて
3
BytesIOオブジェクトを使用してファイルをディスクに保存せずにファイルデータのMD5チェックサムを取得する方法を簡単に説明します。
from hashlib import md5
from io import BytesIO
from PIL import Image
size = 128
filetype = 'png'
# Make a simple test image
img = Image.new('RGB', (size, size), color='red')
#img.show()
# Save it to a fake file in RAM
img_bytes = BytesIO()
img.save(img_bytes, filetype)
# Get the MD5 checksum of the fake file
md5sum = md5(img_bytes.getbuffer())
print(md5sum.hexdigest())
#If we save the data to a real file, we get the same MD5 sum on that file
#img.save('red.png')
出力
af521c7a78abb978fb22ddcdfb04420d
我々はアンコメントimg.save('red.png')
、その後、標準のmd5sumプログラムに'red.png'
を渡す場合は、我々は同じ結果を得ます。
+0
画像を一意に識別するためのハッシングが必要な場合は、pngを避け、pbmのような簡単な方法を使用します。 –
+1
@MatteoItalia良い点ですが、OPがフルファイルデータのMD5ハッシュを望んでいると思われます。さもなければ、彼は 'Image.tobytes'(あるいは' Image.getdata')から生のイメージデータを 'hashlib.md5'に渡すことができます。 –
関連する問題
- 1. ファイルをディスクに保存せずにBufferedImageをMultiPartファイルに変換するには?
- 2. ディスクに保存せずに写真を撮ってバイトを取得
- 3. RMagick - ディスクに保存せずにファイルを別のフォーマットに変換する
- 4. ディスクにファイルを保存せずにウェブサイトの最終行を読む
- 5. ディスクにXMLファイルを保存する
- 6. WAVファイルをディスクに保存する
- 7. yii phpのフォルダに保存せずにファイルを保存する
- 8. Android - ファイルをダウンロードしてからディスクに保存せずに開く方法
- 9. ディスクに展開せずにZIPからファイルを読み取る
- 10. カスタム名を含むワークブックをディスクに保存せずに作成する
- 11. blobをディスクにディスクに保存
- 12. ファイルを上書きせずにファイルを保存するには
- 13. ファイルを保存せずにTCPDF出力
- 14. HTTPレスポンス - Excelファイル - ディスクに保存
- 15. ファイルのAdobe Air MD5を取得するPHP MD5に一致するファイルの取得
- 16. 別のタブ/ウィンドウでhtmlファイルをディスクに保存せずにプレビューする方法はありますか?
- 17. ディスクに保存せずにRubyで電子メールでグラフを送る方法は?
- 18. ローカルに保存せずにzipファイル内にPDFを保存する方法
- 19. 複数の.CSVファイルを圧縮してディスクに保存せずに送信する
- 20. ファイルを保存せずにファイルを作成してアップロードする
- 21. 最初のディスクに保存せずにCSVのダウンロード:変更はweb2pyの
- 22. ファイルを保存ダイアログを使用せずにファイルを保存します
- 23. ファイルをファイルに保存せずにファイルを検索中
- 24. FFmpegをファイルに保存せずに配列に出力する
- 25. ディスクに保存せずにzlibでファイルを圧縮し、ソケット経由で送信する
- 26. ファイルをアンドロイドでディスクに安全に保存する方法は?
- 27. 電子メールの添付ファイルをディスクに保存する製品
- 28. PHP - サーバーに保存せずにzipファイルの内容を読み取る
- 29. .tarファイルからmd5を取得する
- 30. ファイルに保存せずにCコードをコンパイルする
並べ替え[BytesIO](https://docs.python.org/3/library/io.html#io.BytesIO)オブジェクトにPILイメージを保存します。これは非常に高速です。 –
標準配布の一部であるhashlibモジュールを使用します。 –