从xRGB转换为cmyk imagemagick

时间:2016-03-06 10:40:42

标签: imagemagick color-space color-profile

我正在尝试将jgg图像从rgb转换为cmyk颜色空间。平台是ubuntu 14.04 lts,imagemagick 6.7.7-10 我从两个版本的图像开始,两个版本都是rgb。一个具有嵌入式sRGB配置文件,另一个具有AdobeRGB。两者在Firefox或Gwenview中都是相同的显示器,在EOG中非常相似。 当我使用imagemagick将两个图像转换为cmyk时:

convert input.jpg -colorspace cmyk test.jpg

然后我得到两个文件,显示方式完全不同。一个比另一个暗得多,两者都太暗了。看起来原始配置文件尚未用于正确计算新的颜色值。

我观察到的另一件事是,当询问“识别”时,从xRGB到CMYK转换的结果图像似乎仍然嵌入了AdobeRGB配置文件:

>$ identify -verbose test.jpg | grep -A 5 rofile 
  Profiles:
    Profile-exif: 36738 bytes
    Profile-icc: 560 bytes
      Description: Adobe RGB (1998)
      Manufacturer: Adobe RGB (1998)
      Model: Adobe RGB (1998)
      Copyright: Copyright 2000 Adobe Systems Incorporated

我的理解是,CMYK颜色空间容器使用RGB配置文件。

问题:我对ImageMagick或Colorspaces / profiles的理解/使用有什么问题?

3 个答案:

答案 0 :(得分:1)

我认为你将色彩空间与个人资料混淆。如果您只使用var express = require('express'), favicon = require('serve-favicon'), stylus = require('stylus'), logger = require('morgan'), methodOverride = require('method-override'), session = require('express-session'), bodyParser = require('body-parser'), multer = require('multer'), upload = multer({ dest: 'uploads/'}), errorHandler = require('errorhandler'); var app = express(); function compile(src, path) { return stylus(src).set('filename', path); } app.set('views', __dirname + '/server/views'); app.set('view engine', 'jade'); app.use(favicon(__dirname + '/public/images/favicon.ico')); app.use(logger('dev')); app.use(methodOverride); app.use(session( {resave: true, saveUninitialized: true, secret: 'uwotm8'} )); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true})); //app.use(multer()); app.use(stylus.middleware( { src: __dirname + '/public', compile: compile } )); app.use(express.static(__dirname + 'public')); app.get('/', function(req, res) { res.render('index'); }); var port = 3030; app.listen(port); console.log('Listening on port ' + port + '...'); 更改颜色空间,则只会更改颜色空间而不是配置文件,因此您现有的配置文件将保持嵌入状态,如您所见。

我认为你需要

-colorspace cmyk

Anthony Thyssen,here进行了很好的讨论。

答案 1 :(得分:1)

要更改颜色模型和ICC配置文件,我发现有必要同时使用-profile和-colorspace。像这样:

convert image.jpg  -colorspace CMYK -profile USWebCoatedSWOP.icc image_CMYK_cspace_profile.jpg

答案 2 :(得分:1)

除非有CMYK个人资料,否则很多观众都无法正确显示CMYK JPG。如果您有带有配置文件的RGB图像,则使用配置文件进行转换而不是使用-colorspace。在ImageMagick中执行以下操作:

convert rgb.jpg -profile path/to/USWebCoatedSwop.icc cmyk.jpg

如果RGB没有配置文件,那么您想在CMYK配置文件之前添加rgb配置文件

convert rgb.jpg -profile path/to/sRGB.icc -profile path/to/USWebCoatedSwop.icc cmyk.jpg


此外,6.7.7.10相当陈旧,并且在ImageMagick中发生了许多色彩空间变化。所以我强烈要求你升级。在我写这篇文章时,它是6.9.9.40和7.0.7.38。