2012-05-08 10 views
5

ich den folgenden Code verwenden ein Bild, um die Größe PIL mitBild Größe ändern PIL mit Veränderungen Farben drastisch

img = Image.open("in.png") 
resized = ImageOps.fit(img, (200, 200), method=Image.ANTIALIAS) 
resized.save("out.png") 

Aber die Ausgabebild Farben ganz anders aussehen. Hier werden sie zum Vergleich sind, ist das große das Original:

enter image description here enter image description here

Was ist noch seltsamer ist, dass, wenn ich sie öffnen mit dem Bildbetrachter in ubuntu, sie sehen gleich aus. Aber nicht in Windows oder MacOS.

+1

Die Farben sehen hier gleich aus. Dies ist mit Python 2.x? Tritt das gleiche Problem auf, wenn Sie dies mit einem anderen Bildformat (z. B. jpg) tun – Levon

+1

@Levon: Das Bild auf der rechten Seite ist heller und röter. Ohne ein funktionierendes Farbkorrektursystem können Sie das nicht erkennen. –

Antwort

3

Das größere Bild verwendet das Adobe RGB-Farbprofil. Es wird in dem kleineren Bild weggelassen, was bedeutet, dass das Farbkorrektursystem einen Standard (wahrscheinlich sRGB) verwendet, der wahrscheinlich einen kleineren Tonumfang hat. Dies wird dazu führen, dass die Farben matter erscheinen.

Lösung 1: Erstellen Sie das Originalbild mit sRGB anstelle von Adobe RGB.

Lösung 2: Kopieren Sie das Farbprofil aus dem größeren Bild auf das kleinere Bild.

Die meisten Linux-Systeme unterstützen keine Farbkorrektur, zumindest nicht im selben Umfang wie OS X oder Windows. Die Tatsache, dass sie in Ubuntus Bildbetrachter gleich aussehen, ist eine Einschränkung des Bildbetrachtungsprogramms, das Farbprofile nicht verstehen kann.

+0

Cool, danke! Irgendeine Idee, wie ich das Farbprofil von einem Bild zum anderen kopieren kann? –

+0

Ich habe keine Ahnung. –

+0

Ich habe das Originalbild in sRGB geändert und es hat funktioniert! : D –