我需要从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用 Adobe RGB 提交 JPEG 图像。我想对所有缩略图和中等大小的图像使用 sRGB
我正在使用 dotnet (asp.net) 并且需要一种将 Adobe RGB 转换为 sRGB 而不损失任何质量的方法。
我需要从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用 Adobe RGB 提交 JPEG 图像。我想对所有缩略图和中等大小的图像使用 sRGB
我正在使用 dotnet (asp.net) 并且需要一种将 Adobe RGB 转换为 sRGB 而不损失任何质量的方法。
背景信息:JPG 文件有 8 位红色、绿色和蓝色,无论是 sRGB、Adobe RGB 还是纯 ol' RGB。ICC 描述符决定了色彩空间。有时这嵌入在 jpg 文件中。有时有一个标志来指定 sRGB,Exif Colorspace 标记 a001 = 1。Adobe RGB 没有标准标志,但某些应用程序和相机在 exif 标记 A001 中使用 Adobe RGB 的 65535(未校准)。
要将 jpg 文件从一个 ICC 配置文件(颜色空间)转换为另一个,您可以使用 CreateColorTransform 在颜色空间之间创建一个转换。您需要为源 (Adobe RGB) 和目标 (sRGB) 颜色空间提供 ICC 配置文件。
完成变换后,使用 TranslateBitmapBits 调整像素。将图像用作 DIBSection 可能更容易。
这在 .asp 中编写可能有点复杂,因此使用执行此操作的图形库可能更容易。
看看位图变换类,它有一个使用 ColorconvertedBitmap 类和配置文件的简短示例。