2009-07-23 62 views
5

Tôi cần tạo hình thu nhỏ và hình ảnh có kích thước trung bình từ các ảnh lớn. Những ảnh nhỏ hơn này được hiển thị trong thư viện trực tuyến. Nhiều nhiếp ảnh gia đang gửi ảnh JPEG bằng Adobe RGB. Tôi muốn sử dụng sRGB cho tất cả hình thu nhỏ và hình ảnh có kích thước trung bìnhChuyển đổi không gian màu JPEG (Adobe RGB thành sRGB) trên Windows (.Net)

Tôi đang sử dụng dotnet (asp.net) và cần chuyển đổi từ Adobe RGB sang sRGB mà không mất bất kỳ chất lượng nào.

Trả lời

4

Thông tin cơ bản: Tệp Jpg có 8 bit màu đỏ, xanh lá cây và xanh lam, cho dù sRGB, Adobe RGB hay đồng bằng ol 'RGB. Trình mô tả ICC xác định không gian màu. Đôi khi điều này được nhúng vào tệp jpg. Đôi khi có một lá cờ để chỉ định sRGB, thẻ Exif Colorspace a001 = 1. Không có cờ chuẩn cho Adobe RGB, nhưng một số ứng dụng và máy ảnh sử dụng 65535 (chưa được hiệu chỉnh) cho Adobe RGB trong thẻ exif A001.

Để chuyển đổi tệp jpg từ từ một cấu hình ICC (không gian màu) sang một cấu hình khác, bạn có thể sử dụng CreateColorTransform để tạo chuyển đổi giữa các khoảng màu. Bạn sẽ cần phải cung cấp hồ sơ ICC cho không gian màu nguồn (Adobe RGB) và đích (sRGB).

Sau khi bạn có biến đổi, hãy sử dụng TranslateBitmapBits để điều chỉnh pixel. Nó có thể dễ dàng hơn để làm việc với hình ảnh như một DIBSection.

Điều này có thể hơi phức tạp để viết .asp, vì vậy có thể dễ dàng hơn khi sử dụng thư viện đồ họa thực hiện việc này.

0

Ở phía máy chủ, bạn có thể gọi ra ImageMagick và để nó thực hiện chuyển đổi cho bạn.

Here's a link to the -colorspace command line option

tôi đã không sử dụng tùy chọn đặc biệt này, nhưng có vẻ như để làm những gì bạn muốn.

1

Bạn nên sử dụng tùy chọn ImageMagic -profile, tôi tin rằng tùy chọn không gian màu sẽ không giúp bạn ở đó.

convert image.jpg -profile sRGB.icc rgb_image.jpg 

Hoặc bạn có thể tìm kiếm little color management engine

4
+0

Liên kết dường như hoạt động ngay bây giờ. –

+0

@Jon Cảm ơn, tôi đã cập nhật câu trả lời. –

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