2017-06-16 48 views
1

私はこの3行のコードの後でイメージがどう違うのかを知りません。私の意見では、画像は同一でなければなりません。Python tobytes()frombytes()の後にImageが異なるのはなぜですか?

from PIL import Image 

phone_img = Image.open("img2.png") 
phone_img1 = Image.frombytes(phone_img.mode, phone_img.size, phone_img.tobytes()) 
phone_img1.save("img2_new.png","PNG") 



img2.png: http://666kb.com/i/dk4ykapuzs4wc2e4g.png 
img2_new.png: http://666kb.com/i/dk4ykz98cg97grxts.png 

答えて

0

私は大きなPIL /枕のユーザーではないんだけど、:あなたは、あなたのイメージが返されるオブジェクトの型Image

  • であることがより多くを保持しているImage.open()
    • で開く

      • 純粋なピクセルデータ(.mode、.sizeを使用すると分かります)よりも大きくなります。
    • フルオブジェクトをピクセルデータとして解釈して新しいイメージを作成します。
      • 最後の部分は、おそらくlibに応じfrombytes(phone_img.mode, phone_img.size, phone_img.getdata())
      • のようなものは、一つはあまりにも(例えば8ビット対16ビット)
    をビット・モードの世話をする必要があります必要があります
  • 関連する問題