2016-08-09 53 views
5

Tôi cần chuyển đổi hình ảnh từ CMYK sang RGB trong python. Tôi đã sử dụng nhiều loại gối để theo cách này:Chuyển đổi từ CMYK sang RGB bằng Gối khác với Photoshop

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

Mã này hoạt động, nhưng nếu tôi chuyển đổi cùng một hình ảnh với Photoshop Tôi có một kết quả khác nhau như hình dưới đây: -

a

Các hoạt động chỉ được thực hiện trong photoshop là thay đổi phương thức từ CMYK sang RGB. Tại sao có sự khác biệt này giữa hai hình ảnh RGB? Nó có thể là một vấn đề về màu sắc?

+0

Hình ảnh Jgeg luôn sử dụng [YCbCr] (https://en.wikipedia.org/wiki/YCbCr) dưới dạng [định dạng màu] (https: //en.wi kipedia.org/wiki/JPEG#Encoding) để chuyển đổi này là thừa - có vẻ như photoshop biết điều này và không chạm vào hình ảnh nhưng gối naively nén hình ảnh bình thường trên tiết kiệm (thêm hiện vật nén) – janbrohl

+2

Cũng gối có thể không mất một nhúng [ICC profile] (https://en.wikipedia.org/wiki/ICC_profile) vào tài khoản thay đổi màu sắc của hình ảnh một chút. – janbrohl

Trả lời

6

SOLVED

Vấn đề là nhiều loại gối để không biết hồ sơ ICC đầu vào, trong khi photoshop có một bộ như mặc định.

Photoshop sử dụng cho

CMYK: US Web Coated (SWOP) v2

RGB: sRGB IEC61966-2.1

Vì vậy, tôi đã giải quyết theo cách này:

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) 
Các vấn đề liên quan