2012-05-08 44 views
5

Tôi đang sử dụng đoạn mã sau để thay đổi kích thước một hình ảnh sử dụng PILhình ảnh thay đổi kích thước bằng PIL thay đổi màu sắc mạnh

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

Nhưng màu sắc hình ảnh đầu ra trông rất khác nhau. Ở đây họ đang để so sánh, những cái lớn là bản gốc:

enter image description here enter image description here

gì thậm chí còn lạ là khi tôi mở chúng bằng cách sử dụng trình xem ảnh trong ubuntu, họ đều giống nhau. Nhưng không phải trong Windows hoặc MacOS.

+1

Màu sắc trông giống như tôi ở đây. Đây là với Python 2.x? Bạn có gặp sự cố tương tự nếu bạn làm điều này với một định dạng hình ảnh khác (ví dụ: jpg) – Levon

+1

@Levon: Hình ảnh bên phải sáng hơn và đỏ hơn. Bạn sẽ không thể nói mà không có một hệ thống hiệu chỉnh màu làm việc. –

Trả lời

3

Hình ảnh lớn hơn đang sử dụng hồ sơ màu Adobe RGB. Nó được bỏ qua từ hình ảnh nhỏ hơn, có nghĩa là hệ thống hiệu chỉnh màu sắc sẽ sử dụng một số mặc định (có thể là sRGB), có khả năng có một gam màu nhỏ hơn. Điều này sẽ làm cho màu sắc xuất hiện mờ hơn.

Giải pháp 1: Tạo hình ảnh gốc bằng sRGB thay vì Adobe RGB.

Giải pháp 2: Sao chép hồ sơ màu từ hình ảnh lớn hơn sang hình ảnh nhỏ hơn.

Hầu hết các hệ thống Linux không hỗ trợ hiệu chỉnh màu, ít nhất là không nằm trên cùng phạm vi mà OS X hoặc Windows thực hiện. Vì vậy, thực tế là chúng xuất hiện giống nhau trong trình xem hình ảnh của Ubuntu thực sự là một hạn chế của chương trình xem hình ảnh, mà không thể hiểu được hồ sơ màu sắc.

+0

Tuyệt vời, cảm ơn! bất kỳ ý tưởng về cách tôi có thể sao chép các hồ sơ màu sắc từ một hình ảnh khác? –

+0

Tôi không biết. –

+0

Tôi đã thay đổi hình ảnh gốc thành sRGB và nó đã hoạt động! : D –

Các vấn đề liên quan