Konvertieren JPG von AdobeRGB zu sRGB mit PIL?

8

Wie kann ich erkennen, ob JPG AdobeRGB ist und ob es in Python in sRGB JPG konvertiert wird.

Wenn das in PIL möglich ist, wäre das großartig. Danke.

    
miki725 14.06.2012, 20:42
quelle

3 Antworten

7

Danke für die Spezifikation link martineau, ich habe ein paar PIL Code zusammen mit Funktionen, die das Vorhandensein eines Adobe RGB ICC-Profils innerhalb einer Image erkennen, und wandle den Farbraum in sRGB.

%Vor%

(Ich habe diese verwendet, um Django einfache Thumbnails zu erstellen Prozessorfunktion):

%Vor%     
DrMeers 04.09.2013 10:52
quelle
5

Ich hatte das gleiche Problem, ich habe alle Antworten getestet und im letzten Bild die falsche Farbe bekommen. @DrMeers Alle Matrizen, die ich ausprobiert habe, gaben ein falsches Ergebnis in Rot und Schwarz, also hier ist meine Lösung:

Der einzige Weg, den ich herausgefunden habe, ist das Profil aus dem Bild zu lesen und mit ImageCms zu konvertieren.

%Vor%

Ich denke, diese Methode kann für jedes Farbprofil verwendet werden, aber nicht getestet.

    
alekssaff 07.01.2017 17:10
quelle
4

Um dies selbst zu programmieren, könnten Sie Pixel im AdobeRGB-Farbraum in CIE XYZ konvertieren und dann in sRGB konvertieren. PIL image -Objekte haben eine Methode namens convert() mit der Fähigkeit, eine allgemeine Matrixtransformation auf alle Pixel in einem Bild anzuwenden (siehe Abschnitt auf convert in der Online-Dokumentation des PIL-Image-Moduls - beachten Sie das Beispiel mit den Matrixwerten, die für den Übergang von RGB zu XYZ benötigt werden. .

Abschnitt 4.3.4 in der AdobeRGB1998 .pdf Spezifikation zeigt eine Matrix zur Umwandlung von XYZ in RGB.

Ich bin mir nicht sicher, wie ich den Farbraum von JPG-Bildern erkennen kann. Ich erinnere mich daran, etwas über ICC-XML-Profile gelesen zu haben, die am Ende der Datei angehängt wurden (und ein Problem, das bei mehr als einem Problem auftrat), aber ich kann nicht für seine Gültigkeit bürgen. Der Wikipedia-Artikel über das JPEG-Dateiformat sagt, dass Profile eingebettet sind.

    
martineau 15.06.2012 04:22
quelle