Para trabalhos impressos, pode ser necessário trabalhar com imagens no espaço de cor CMYK, em vez de RGB, especialmente se não se usa o Scribus. A conversão do formato RGB para CMYK pode ser feita com o pacote ImageMagick, através do utilitário ‘convert‘:
convert catwoman.tif -profile ~/.color/icc/CMYK/UncoatedFOGRA29.icc catwoman-cmyk.tif
Os perfis de cor pessoais ficam na pasta ~/.color/icc/. Baixe perfis de cor da Adobe e descompacte-os nesta pasta. Use um perfil para cada tipo de papel (offset comum, couché, couché fosco, papel jornal, etc).
O resultado é uma imagem CMYK com perfil de cor embutido. Muito próximo ao obtido pelo Scribus. As imagens abaixo mostram as diferenças de imagem nos espaços de cor CMYK e RGB no preview de impressão do Scribus.
Só funciona bem a conversão para imagens TIFF, pois JPG não usa espaço de cor CMYK, mas YCrCb (ver comentário depois deste artigo).
Como se pode ver, a saída da foto TIFF CMYK (foto superior) é praticamente igual à saída JPG RGB (foto inferior), no preview do Scribus, denotando que o ImageMagick faz uma boa conversão.
Conversão CMYK em Python
Programaticamente, posso fazer a conversão com a Python Image Library (PIL) 1.1.7, que já incorpora interface com o littlecms, sistema gerenciador de cores (CMS) de código aberto. Essa biblioteca não é instalada por default em Python. É necessário baixá-la e instalá-la.
# Importo os módulos PIL import Image import ImageCms # carrego a imagem encoding = sys.getfilesystemencoding() file = 'fotão.jpg' image = Image.open(file.encode(encoding)) # encode to let PIL handle accented filenames # Crio a transformação com perfis de cor # Estes caminhos são para Windows. # No Linux, os perfis ficam em /usr/share/color/icc ou ~/color/icc # é preciso saber exatamente o perfil de cor original da imagem transform = ImageCms.buildTransform( 'c:\WINDOWS\system32\spool\drivers\color\AdobeRGB1998.icc', 'c:\WINDOWS\system32\spool\drivers\color\ISOuncoated.icc', "RGB", "CMYK", ImageCms.INTENT_PERCEPTUAL ) # Aplico a transformação à imagem. # O comando PIL "image = image.convert('CMYK')" não pode ser usado porque # não trabalha com perfis de cores e não gera a chapa de preto, # cria preto com 100% Ciano, 100% Magenta e 100% Yellow. image = applyTransform(image, transform, inPlace=1) # Salvo a imagem a 300 dpi file2 = 'fotão.tiff' # Não use JPEG para imagens CMYK image.save(file2.encode(encoding),dpi=(300,300))
Esqueça conversão: use o Scribus
O Scribus não precisa disto, porque converte RGB para CMYK automaticamente (embute perfis de cor na saída PDF/X-3). Mas outros programas, como PageMaker, precisam de imagens já no espaço de cor CMYK, para impressão.
Bibliografia
- RGB para CMYK. <http://community.linuxmint.com/tutorial/view/195>
- Converter RGB para CMYK. Gráfica Livre. http://www.graficalivre.com.br/blog/18-converter-rgb-para-cmyk.html?showall=1
- ImageMagick: “convert: color profile operates on another colorspace `icc’” <http://saratrice.com/2010/11/03/imagemagick-convert-color-profile-operates-on-another-colorspace-icc/>.
- Código fonte do módulo PIL ImageCms: c:\Python27\Lib\site-packages\PIL\ImageCms.py
- Instalar perfis de cores no Linux, Mac e Windows. Gráfica Livre. http://www.graficalivre.com.br/blog/19-instalar-perfis-icc-no-linux-mac-e-windows.html
Artigo Fantástico! Super Esclarecedor e empolgante, pois ainda não tinha o conhecimento que o Scribus converte imagens RGB em CMYK automaticamente, para a área de diagramação é ótimo e faz com que seja desnecessário o uso de softwares proprietários.
Valeu o prestígio, Juliana!
Sim, o Scribus produz PDF/X-3, que permite o embutimento de perfis de cor. A foto continua RGB, mas é convertida pelo RIP para CMYK graças ao perfil de cor.
Só dá problema quando algumas gráfica abrem o PDF no Corel Draw, para fazer imposição (ARGH!). Pelo menos até a versão 13, o Corel não convertia as fotos RGB. Não sei nas novas versões…
Um adendo: há um pacote DEB com perfis ICC, o
icc-profiles
.Ótima dica! Este pacote instala tudo no lugar certo para todo o sistema.
O fato da conversão só funcionar bem no formato TIFF se deve ao JPEG usar o espaço de cor YCbCr.
O “JPEG CMYK” é uma extensão proprietária e incompatível da Adobe.
Então é isto! Valeu o esclarecimento, Marco.