私は、PythonのPILの優れた変更をEtienne from hereで使用しています。私が必要とするのは、元のJPEGファイルと同じ量子化テーブルを使用してJPEGファイルを保存することです。その変更を行うことは、エレガントに思えます。私は現在、Cコードを使用してこれを達成しています。クロップ時にPILにイメージタイプ情報を保存する
私の問題は、PILでJPEGファイルオブジェクトを取得することですが、変更後は他のタイプのオブジェクトになります。私が欲しいのは、イメージを取り、それを切り取り、同じ量子化テーブルで保存することです。
私が試してみてください。
img = Image.open("someimage.jpg")
width, height = img.size
crop = img.crop((8, 0, width, height))
img = img.resize((width - 8, height))
img.paste(crop, (0,0))
img.save("crop.jpg", quality='keep')
IMGオブジェクトが最初PIL.JpegImagePlugin.JpegImageFileですが、リサイズ/ペースト操作の後にちょうど画像となります。したがって、私はquality = 'keep'を使用することができません。これはもはやJPEGではありません。私は上記のようにクロッピングと貼り付けを試みましたが、いくつかの方法を試しましたが、何もJpegImageFileオブジェクトを保持していないようです。
ああ、私はばかげたことに、.pyファイル内でドキュメントをチェックすることを想像しませんでした。これはマイナーチェンジで動作します.qtables引数に 'qt'だけでなく、' enumerate(qt) 'を与えなければなりません。 – DUman
また、サブサンプリングと量子化テーブルの両方を使用して、フォークのJpegPresets.pyファイルに示されているように、プリセット全体を作成すると便利です。ありがとう! – DUman