在Linux上将JPEG颜色空间(Adobe RGB转换为sRGB)

时间:2009-05-03 18:57:21

标签: imagemagick jpeg

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

我目前正在使用ImageMagick来创建较小的版本。它有一个-colorspace选项,但似乎没有做我想要的。

还有其他办法吗?另外,你认为这是值得的吗?

4 个答案:

答案 0 :(得分:10)

您可以使用ImageMagic -profile选项:

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

请点击此处了解更多详情: http://www.imagemagick.org/Usage/formats/#color_profile

答案 1 :(得分:8)

您是否尝试过使用Little CMS?此命令将具有特殊颜色配置文件(即Adobe RGB 1998)的图像转换为没有颜色配置文件但具有相同有效颜色的图像:

jpgicc -q100 input.jpg output.jpg

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

使用Krita重新导出图像对我来说似乎已经足够好了:

class PooledObject
{
public:
    void* operator new(size_t size) 
    { 
        void * p = Pool<PooledObject>::getInstance().acquire();
        return p; 
    } 
  
    void operator delete(void * p) 
    { 
        Pool<PooledObject>::getInstance().release((PooledObject*)p);
    } 
};

class Foo : public PooledObject
{
    int i;
public:
};

Krita是开放源代码的Photoshop / Paint,具有(n个极为有限的)命令行界面。用

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