我正在从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用Adobe RGB提交 JPEG 图像。我被问到缩略图和中等大小的图像是否可以使用sRGB作为在某些浏览器中显示为“平面”的图像。
我目前正在使用 ImageMagick 创建较小的版本。它有一个-colorspace
选项,但这似乎并没有达到我想要的效果。
有没有其他方法可以做到这一点?另外,你觉得这样划算吗?
我正在从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用Adobe RGB提交 JPEG 图像。我被问到缩略图和中等大小的图像是否可以使用sRGB作为在某些浏览器中显示为“平面”的图像。
我目前正在使用 ImageMagick 创建较小的版本。它有一个-colorspace
选项,但这似乎并没有达到我想要的效果。
有没有其他方法可以做到这一点?另外,你觉得这样划算吗?
您可以使用 ImageMagic-profile
选项:
convert image.jpg -profile <adobe.icc> -profile <sRGB.icc> new_image.jpg
有关详细信息,请参见此处: http ://www.imagemagick.org/Usage/formats/#color_profile 。
你试过使用Little CMS吗?此命令会将具有特殊颜色配置文件(即 Adobe RGB 1998)的图像转换为没有颜色配置文件但有效颜色相同的图像:
jpgicc -q100 input.jpg output.jpg
我在这里将 JPEG 质量设置为 100。
ImageMagick 论坛中的以下线程详细讨论了这一点:http ://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=16464
我现在使用这个 bash 脚本将任何图片(包括 CMYK)转换为 sRGB: http ://alma.ch/scripts/any2srgb
对于没有嵌入配置文件的图像,它需要 icc 配置文件。这些可以在网上很容易地找到。例如在 Adobe 的网站上:http: //www.adobe.com/cfusion/search/index.cfm?term= icc+profile&siteSection=support%3Adownloads
这是完整脚本功能的摘要(未经测试)(没有调整大小和其他选项)。它需要配置文件和 ImageMagick。在基于 Debian 的系统上:apt-get install icc-profiles imagemagick
.
#!/bin/bash
srgb=sRGB.icm
cmyk=ISOwebcoated.icc
# extract possible color profile
profile="${f/%.*/.icc}"
convert "$f" "icc:$profile" 2>/dev/null
if cmp -s "$profile" "$srgb" ; then
# embedded profile is already srgb. Nothing to do
exit
fi
if [ -s "$profile" ]; then
# we have an embedded profile, so ImageMagick will use that anyway
convert "$f" -profile "$srgb" +profile '*' "$outfile"
else
# no embedded profile in source
if identify -format "%r" "$f" | grep -q CMYK; then
# CMYK file without embedded profile
convert "$f" -profile "$cmyk" -profile "$srgb" "$outfile"
fi
fi
使用Krita重新导出图像对我来说似乎效果很好:
krita my_img.jpg --export --export-filename my_img_in_srgb.jpg
Krita 是一个开源的 Photoshop/Paint,带有一个(非常有限的)命令行界面。安装它
sudo apt install krita