【问题标题】:Converting JPEG colorspace (Adobe RGB to sRGB) on Windows (.Net)在 Windows (.Net) 上转换 JPEG 颜色空间(Adobe RGB 到 sRGB)
【发布时间】:2010-11-13 13:47:31
【问题描述】:

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

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

【问题讨论】:

    标签: .net asp.net rgb color-space


    【解决方案1】:

    查看The bitmap transform classes,它有一个使用 ColorconvertedBitmap 类和配置文件的简短示例。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

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

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

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

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

        【讨论】:

          【解决方案4】:

          你应该使用 ImageMagic -profile 选项,我相信 -colorspace 选项对你没有帮助。

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

          您也可以查找little color management engine

          【讨论】:

            【解决方案5】:

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

            Here's a link to the -colorspace command line option

            我没有使用过这个特定选项,但它似乎可以满足您的需求。

            【讨论】: