我需要从大型照片生成缩略图和中等大小的图像。 这些较小的照片可在在线图库中显示。许多摄影师使用Adobe RGB提交JPEG图像。 我想将sRGB用于所有缩略图和中等大小的图像
我正在使用dotnet(asp.net),需要一种方法将Adobe RGB转换为sRGB而不会失去任何质量。
答案 0 :(得分: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中编写这可能有点复杂,因此使用图形库可能更容易。
答案 1 :(得分:4)
答案 2 :(得分:2)
您应该使用ImageMagic -profile选项,我相信-colorspace选项对您没有帮助。
convert image.jpg -profile sRGB.icc rgb_image.jpg
或者,您可以查找little color management engine
答案 3 :(得分:1)
查看The bitmap transform classes,其中包含使用带有配置文件的ColorconvertedBitmap类的简短示例。
答案 4 :(得分:0)
在服务器端,您可以调用ImageMagick并让它为您进行转换。
Here's a link to the -colorspace command line option
我没有使用过这个特殊的选项,但似乎做了你想做的事。