我正在尝试将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的理解/使用有什么问题?
答案 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。