15

我正在从大照片中生成缩略图和中等大小的图像。这些较小的照片用于在在线画廊中展示。许多摄影师使用Adob​​e RGB提交 JPEG 图像。我被问到缩略图和中等大小的图像是否可以使用sRGB作为在某些浏览器中显示为“平面”的图像。

我目前正在使用 ImageMagick 创建较小的版本。它有一个-colorspace选项,但这似乎并没有达到我想要的效果。

有没有其他方法可以做到这一点?另外,你觉得这样划算吗?

4

4 回答 4

13

您可以使用 ImageMagic-profile选项:

convert image.jpg -profile <adobe.icc> -profile <sRGB.icc> new_image.jpg

有关详细信息,请参见此处: http ://www.imagemagick.org/Usage/formats/#color_profile 。

于 2009-05-03T19:38:42.133 回答
9

你试过使用Little CMS吗?此命令会将具有特殊颜色配置文件(即 Adob​​e RGB 1998)的图像转换为没有颜色配置文件但有效颜色相同的图像:

jpgicc -q100 input.jpg output.jpg

我在这里将 JPEG 质量设置为 100。

于 2012-05-29T20:54:43.730 回答
3

ImageMagick 论坛中的以下线程详细讨论了这一点:http ://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=16464

我现在使用这个 bash 脚本将任何图片(包括 CMYK)转换为 sRGB: http ://alma.ch/scripts/any2srgb

对于没有嵌入配置文件的图像,它需要 icc 配置文件。这些可以在网上很容易地找到。例如在 Adob​​e 的网站上: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
于 2012-02-02T16:14:31.527 回答
0

使用Krita重新导出图像对我来说似乎效果很好:

 krita my_img.jpg --export --export-filename my_img_in_srgb.jpg

Krita 是一个开源的 Photoshop/Paint,带有一个(非常有限的)命令行界面。安装它

sudo apt install krita
于 2020-10-10T03:47:09.760 回答