2016-08-09 10 views
5

से अलग है, मुझे सीएमवाईके से आरजीबी में एक छवि को पायथन में परिवर्तित करने की आवश्यकता है। मैं इस तरह से तकिया इस्तेमाल किया:सीएमवाईके से आरजीबी के साथ पिलो के साथ रूपांतरण फ़ोटोशॉप

img = Image.open('in.jpg') 
img = img.convert('RGB') 
img.save('out.jpg') 

कोड काम करता है, लेकिन अगर मैं फ़ोटोशॉप के साथ एक ही छवि परिवर्तित जिन्हें आप नीचे देख मैं एक अलग परिणाम है: -

a

केवल आपरेशन किया फ़ोटोशॉप में सीएमवाईके से आरजीबी तक विधि बदलना है। दो आरजीबी छवियों के बीच यह अंतर क्यों है? यह एक रंग प्रोफाइल समस्या हो सकती है?

+0

जेजीजी छवियां हमेशा [वाईसीबीसीआर] (https://en.wikipedia.org/wiki/YCbCr) [रंग प्रारूप] के रूप में उपयोग करती हैं (https: //en.wi kipedia.org/wiki/JPEG#Encoding) तो यह रूपांतरण अनिवार्य है - ऐसा लगता है कि फ़ोटोशॉप यह जानता है और छवि को स्पर्श नहीं करता है लेकिन तकिया सामान्य रूप से सहेजने पर छवि को संपीड़ित करता है (संपीड़न कलाकृतियों को जोड़ना) – janbrohl

+2

इसके अलावा तकिया संभवतः एम्बेडेड नहीं लेती [आईसीसी प्रोफाइल] (https://en.wikipedia.org/wiki/ICC_profile) खाते में रंगों को थोड़ा सा बदलते हुए खाते में। – janbrohl

उत्तर

6

हल

समस्या यह है कि तकिया इनपुट ICC प्रोफ़ाइल में पता नहीं है, जबकि फ़ोटोशॉप डिफ़ॉल्ट के रूप में एक सेट था।

के लिए

सीएमवाईके

फ़ोटोशॉप उपयोग: अमेरिका वेब लेपित (SWOP) v2

आरजीबी: sRGB IEC61966-2.1

तो मैं इस तरह से हल किया है:

img = Image.open('in.jpg') 
img = ImageCms.profileToProfile(img, 'USWebCoatedSWOP.icc', 'sRGB Color Space Profile.icm', renderingIntent=0, outputMode='RGB') 
img.save('out.jpg', quality=100) 
संबंधित मुद्दे