4

PILの作物機能にはおそらく非常に基本的な問題があります。切り取った画像の色が完全にねじれています。Pythonの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() 

元の画像::enter image description here

and the outputここでは、コードです。

あなたが見ることができるように、出力の色が完全に...任意の助けを事前に

感謝を台無しにしています!

答えて

4

output -Hoff

は、ファイル名ではなく、ハンドラでなければなりません。

+1

まあ、それはファイルすることができますが、それはバイナリモードでオープンする必要があります。それでも便利なときは、PILを処理する方が良いです。 – kindall

3

output = open('cropped_football.jpg', 'w') 
area.save(output) 
output.close() 

がちょうど save実際に生成される出力への呼び出しので

area.save('cropped_football.jpg') 
1

を行う代わりに、私はPILは、ファイル名または同義的に開いているファイルのいずれかを使用することが可能であることを前提としなければなりません。問題はファイルモードで、デフォルトではテキストの表記規則に基づいて変換しようとします - Windowsでは '\ n'は '\ r \ n'に置き換えられます。バイナリモードでファイルを開く必要があります。

output = open('cropped_football.jpg', 'wb') 

P.S.私はこれをテストし、それが動作します:

enter image description here

関連する問題