我需要從大型照片中生成縮略圖和中等大小的圖像。 這些較小的照片用於在線畫廊中顯示。許多攝影師使用Adobe RGB提交JPEG圖像。 我想使用sRGB所有縮略圖和中等大小的圖像在Windows(.Net)上轉換JPEG色彩空間(Adobe RGB到sRGB)
我使用dotnet(asp.net),並需要一種方法來從Adobe RGB轉換爲sRGB而不會丟失任何質量。
我需要從大型照片中生成縮略圖和中等大小的圖像。 這些較小的照片用於在線畫廊中顯示。許多攝影師使用Adobe RGB提交JPEG圖像。 我想使用sRGB所有縮略圖和中等大小的圖像在Windows(.Net)上轉換JPEG色彩空間(Adobe RGB到sRGB)
我使用dotnet(asp.net),並需要一種方法來從Adobe RGB轉換爲sRGB而不會丟失任何質量。
背景信息: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編寫時可能有點複雜,因此使用圖形庫可能會更容易。
在服務器端,您可以調用ImageMagick並讓它爲您執行轉換。
Here's a link to the -colorspace command line option
我沒有使用過這種特殊的選項,但似乎你想要做什麼。
你應該使用ImageMagic -profile選項,我相信-colorspace選項不會幫你。
convert image.jpg -profile sRGB.icc rgb_image.jpg
看看The bitmap transform classes,它有一個使用ColorconvertedBitmap類與簡檔的簡短示例。
現在鏈接似乎工作。 – 2009-08-01 19:50:57