6

我需要从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用 Adob​​e RGB 提交 JPEG 图像。我想对所有缩略图和中等大小的图像使用 sRGB

我正在使用 dotnet (asp.net) 并且需要一种将 Adob​​e RGB 转换为 sRGB 而不损失任何质量的方法。

4

5 回答 5

5

背景信息:JPG 文件有 8 位红色、绿色和蓝色,无论是 sRGB、Adobe RGB 还是纯 ol' RGB。ICC 描述符决定了色彩空间。有时这嵌入在 jpg 文件中。有时有一个标志来指定 sRGB,Exif Colorspace 标记 a001 = 1。Adobe RGB 没有标准标志,但某些应用程序和相机在 exif 标记 A001 中使用 Adob​​e RGB 的 65535(未校准)。

要将 jpg 文件从一个 ICC 配置文件(颜色空间)转换为另一个,您可以使用 CreateColorTransform 在颜色空间之间创建一个转换。您需要为源 (Adobe RGB) 和目标 (sRGB) 颜色空间提供 ICC 配置文件。

完成变换后,使用 TranslateBitmapBits 调整像素。将图像用作 DIBSection 可能更容易。

这在 .asp 中编写可能有点复杂,因此使用执行此操作的图形库可能更容易。

于 2009-07-30T02:28:35.383 回答
4

看看ColorConvertedBitmap 类

于 2009-07-30T00:43:49.873 回答
3

您应该使用 ImageMagic -profile选项,我相信 -colorspace 选项不会帮助您。

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

或者,您可以寻找小的色彩管理引擎

于 2009-07-29T13:00:19.317 回答
1

看看位图变换类,它有一个使用 ColorconvertedBitmap 类和配置文件的简短示例。

于 2010-03-22T09:28:33.313 回答
0

在服务器端,您可以调用 ImageMagick 并让它为您进行转换。

这是 -colorspace 命令行选项的链接

我没有使用这个特定的选项,但它似乎做你想要的。

于 2009-07-27T20:55:38.643 回答