Python PILトリミングの問題:トリミングされた画像の色がねじれている
-
06-07-2019 - |
質問
PILのトリミング機能にはおそらく非常に基本的な問題があります。トリミングされた画像の色は完全にねじ込まれています。コードは次のとおりです。
>>> from PIL import Image
>>> img = Image.open('football.jpg')
>>> img
<PIL.JpegImagePlugin.JpegImageFile instance at 0x00
>>> img.format
'JPEG'
>>> img.mode
'RGB'
>>> box = (120,190,400,415)
>>> area = img.crop(box)
>>> area
<PIL.Image._ImageCrop instance at 0x00D56328>
>>> area.format
>>> area.mode
'RGB'
>>> output = open('cropped_football.jpg', 'w')
>>> area.save(output)
>>> output.close()
元の画像:
および。
ご覧のとおり、出力の色は完全に乱れています...
ご協力いただきありがとうございます!
-Hoff
解決
output
は、ハンドラーではなくファイル名でなければなりません。
他のヒント
の代わりに
output = open('cropped_football.jpg', 'w')
area.save(output)
output.close()
ただやる
area.save('cropped_football.jpg')
save
の呼び出しは実際に出力を生成するため、PILはファイル名または開いているファイルのいずれかを交換可能に使用できると想定する必要があります。問題はファイルモードにあり、デフォルトではテキストの規則に基づいて変換しようとします-Windowsでは「\ n」が「\ r \ n」に置き換えられます。ファイルをバイナリモードで開く必要があります。
output = open('cropped_football.jpg', 'wb')
PSこれをテストしましたが、動作します:
所属していません StackOverflow