几天后我将向一个会议提交一篇论文,刚刚注意到他们要求所有图像都采用 CMYK 色彩空间。有没有一种快速简便的方法可以检查它们是否符合要求?
如果不是,有没有一种快速简便的方法将它们转换为 CMYK,最好是通过 PDFlatex 或其他 Latex 组件(最好)或通过批处理实用程序(好)或其他方法,这样我就不必手动执行(不好)。如果批处理是解决方案,我希望能够复制我的工作文件夹树,将批处理实用程序指向它,并让其将其中的所有内容转换为 CMYK(如果尚未转换为 CMYK)。
我的图像大部分是 jpeg,但我认为也可能有一些 PNG。
答案1
PNG 不能位于 CMYK 色彩空间中,因此如果您有 PNG,则需要将它们转换为 JPG。
我只使用 Linux,所以我的解决方案可能不相关,但 imagemagick 是一个很好的批量转换图像的命令行工具。
如果您在文档中使用颜色,则需要使用xcolor
cmyk 选项加载包,以确保所有颜色定义都转换为 CMYK 色彩空间(尽管它不会转换包含的图像,只会转换直接在乳胶文档中使用的颜色)。
另外要注意的是,如果您使用fontspec
,进行字体定义,使用的[Color=...]
选项fontspec
不支持 CMYK 颜色。相反,您将需要使用\color{}
中的命令xcolor
。
命令行转换的一个例子imagemagick
是:
convert image-rgb.jpg -colorspace CMYK image-cmyk.jpg
您必须意识到转换后的图像看起来与原始图像不同。
您可以使用以下命令检查图像编码的色彩空间identify
:
identify -verbose image.jpg
并查找Colorspace:
字段。在 POSIX 环境中,只需grep
执行
identify -verbose image.jpg | grep "Colorspace:"
应该会给你答案。
编辑:如前所述,IM 通过-colorspace
选项进行的默认转换效果不是很好。IM 手册建议改用选项-profile <filename>.icc
以获得更好的结果。这需要有适当的 icc 配置文件可用。
在安装了 Linux 发行版的版本中ghostscript
,有一个default_cmyk.icc
文件已经提供了比使用该选项获得的结果更好的结果-colorspace CMYK
。但是,Adobe 免费提供其 ICC 配置文件,IM 可以使用这些配置文件来产生更好的结果。Adobe ICC 配置文件可从Adobe 网站。该软件包包含 8 个 RGB 配置文件和 14 个 CMYK 配置文件,因此有很多选择。我尝试了 和WebCoatedSWOP2006Grade5.icc
,USWebCoatedSWOP.icc
两者都给出了非常好的结果,它们之间只有细微的差别。但是,如果会议坚持使用 CMYK 色彩空间,可能值得询问他们是否可以为您提供他们的 ICC 配置文件,这样您就可以确保图像中的所有颜色都能正确打印。
一旦您有了 ICC 文件,您就可以像这样将它们与 imagemagick 一起使用:
convert image-rgb.jpg -profile "\path\to\cmyk_profile.icc" image-cmyk.jpg
答案2
我建议使用 imagemagick 创建的 JPEG-in-bilevel-PDF。到目前为止,这是我发现的唯一可靠的解决方案,既可以处理 CMYK,又可以保持源 PNG 的透明度,同时使它们易于在 pdflatex 或 xelatex 中处理。
我通常会做以下事情:
转换 rgb.jpg +profile "*" -profile "path/to/rgb.icc" -profile "path/to/cmyk.icc" -strip -sampling-factor 1x1 -quality 95 -compress JPEG cmyk.pdf
或者
转换 rgb.png +profile "*" -profile "path/to/rgb.icc" -profile "path/to/cmyk.icc" -strip -sampling-factor 1x1 -quality 100 -compress JPEG cmyk.pdf
笔记:
- 如果源图像有嵌入的配置文件,则 convert 的行为会有所不同。这非常烦人。如果没有,则需要提供两个 -profile 参数(源配置文件和目标配置文件),否则不会发生转换,并且如果是自制图像,源文件通常没有配置文件。因此,我建议在确定它是 RGB 文件时使用 +profile "*" 删除图像中可能存在的配置文件,以便统一处理所有文件,然后应使用 "-profile" 指定 2 个配置文件
- 指定 -compress JPEG 是必要的,这样最终的 pdf 将包含 jpg(加上透明蒙版)。否则,如果输入文件是 rgb.png,它将不会在 pdf 中变成 JPEG,因此由于 png 中缺乏 CMKY 支持,CMYK 转换将徒劳无功。
- 如果源文件是 PNG,则 jpg-in-pdf 的最终质量为 100 是一个不错的选择。否则,可以选择您想要的任何其他压缩级别。通常 95 就足够了。
- 如果您在生成的 cmyk.pdf 上使用 -verbose 进行识别,它会告诉您“K”通道是空的。我认为这是识别的一个错误,因为如果您从 PDF 中二进制提取 jpeg,K 通道是没问题的。
- 生成的 pdf 将有 2 个“层”:JPG 格式的图像数据,加上一个 8 位透明层,如果源文件具有透明度(例如 png),则会填充该层。
- -strip 将从最终文件中删除嵌入的颜色配置文件。否则 imagemagick 会将 cmyk.icc 文件复制到最终的 pdf 中,通常会使其大小增加约 600k。
- 需要将采样因子重置为 1x1,否则 imagemagick 的颜色转换库将使图像模糊。
- imagemagick 有一个内置的“-colorspace CMYK”函数,但它只能进行简单的转换,并且可能会导致错误的最终 CMYK 色调。因此,请使用目标打印机/公司/等的配置文件。
始终转换为 jpg-in-pdf(即使源是 PNG)使得在 LaTeX 中更容易,因为现在您可以独立于其源使用统一的 pdf。
我必须强调,您需要两个配置文件才能完成转换工作。我经常陷入这个困境。
为了获得合适的颜色配置文件,我建议使用 sRGB v4 首选项http://www.color.org/srgbprofiles.xalter对于 CMYK 颜色配置文件,请从 Adobe 软件包中选择一个(例如,在欧洲,它通常是 ISO Coated FOGRA39):http://www.adobe.com/support/downloads/product.jsp?product=62&platform=Windows