2009-07-23 132 views
5

我需要從大型照片中生成縮略圖和中等大小的圖像。 這些較小的照片用於在線畫廊中顯示。許多攝影師使用Adobe RGB提交JPEG圖像。 我想使用sRGB所有縮略圖和中等大小的圖像在Windows(.Net)上轉換JPEG色彩空間(Adobe RGB到sRGB)

我使用dotnet(asp.net),並需要一種方法來從Adobe RGB轉換爲sRGB而不會丟失任何質量。

回答

4

背景信息:jpg文件有8位紅色,綠色和藍色,無論是sRGB,Adobe RGB還是普通的RGB。 ICC描述符決定色彩空間。有時候這是嵌入在jpg文件中的。有時會有一個標誌指定sRGB,Exif色彩空間標記a001 = 1。沒有用於Adobe RGB的標準標誌,但是某些應用程序和相機在exif標記A001中使用了用於Adobe RGB的65535(未校準)。

要將一個jpg文件從一個ICC配置文件(色彩空間)轉換爲另一個,可以使用CreateColorTransform在色彩空間之間創建一個轉換。您將需要爲源(Adobe RGB)和目標(sRGB)色彩空間提供ICC配置文件。

完成變換後,使用TranslateBitmapBits來調整像素。將圖像作爲DIBSection使用可能會更容易。

這在使用.asp編寫時可能有點複雜,因此使用圖形庫可能會更容易。