在Windows (.Net)上转换JPEG色彩空间(从Adobe RGB到sRGB)

6

我需要从大型照片中生成缩略图和中等大小的图像。这些较小的照片用于在线画廊中显示。许多摄影师使用Adobe RGB提交JPEG图像。

我想在所有缩略图和中等大小的图像中使用sRGB。

我正在使用dotnet(asp.net),需要一种将Adobe RGB转换为sRGB而不失去任何质量的方法。

5个回答

5
背景信息:Jpg文件有8位红、绿和蓝色,无论是sRGB、Adobe RGB还是普通的RGB。ICC描述符确定了颜色空间。有时这个描述符嵌入在jpg文件中。有时会有一个标志来指定sRGB,Exif Colorspace标签a001 = 1。没有标准标志来表示Adobe RGB,但一些应用程序和相机在exif标签A001中使用65535(未校准)来表示Adobe RGB。
要将jpg文件从一个ICC配置文件(颜色空间)转换为另一个,可以使用CreateColorTransform创建两种颜色空间之间的转换。您需要提供源(Adobe RGB)和目标(sRGB)颜色空间的ICC配置文件。
得到转换后,使用TranslateBitmapBits调整像素。可能更容易使用DIBSection处理图像。
在.asp中编写这可能有点复杂,因此使用一个能够完成此操作的图形库可能更容易。

4

3
你应该使用ImageMagic -profile选项,我认为-colorspace选项对你没有帮助。
convert image.jpg -profile sRGB.icc rgb_image.jpg

另外,您可以寻找小色彩管理引擎


1

看一下位图转换类,其中有一个使用ColorconvertedBitmap类和配置文件的简短示例。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接