Is there a way to set the rendering intent used for color space conversion when extracting a page image with PDFDraw?
I am extracting RGB TIFF images from a PDF in the CMYK color space and all of my output images look over-saturated. I’m assuming PDFDraw is using Relative Colorimetric rendering intent and I believe changing that intent to Perceptual in the CMM should fix the issue. But, I don’t see any way to set that in the PDFDraw API. I’m open to stepping down to the PDFRasterizer API if needed.
Thanks for any suggestions.
So, just to clarify.
Do you need to rasterize PDF page or you would simply like to extract embedded images in PDF?
a) If you want to rasterize the entire page you would use PDFDraw (PDFRasterizer is just more low-level & I wouldn’t recommend using PDFRasterizer unless you have a good reason). You can rasterize to RGB, CMYK, or Gray color space. Typically most users rasterize to RGB (which is default), but if you can change this using PixelFormat in the call to PDFDraw.GetBitmap() or PDFDraw.Export(). When you rasterize in CMYK, PDFDraw would use CMYK for all pixel blending operation and would preserve black channel (and so forth) which is important in many print workflows.
Please note that you can control conversion from CMYK to RGB (and the other way around) using PDFNet.SetColorManagement(PDFNet.CMSType.e_lcms) & PDFNet.SetDefaultDeviceCMYKProfile(“cmyk.icc”) & PDFNet.SetDefaultDeviceRGBProfile(“rgb.icc”) (see comments at the beginning of PDFDraw sample). By using different profiles, you may end up with very different color output. Btw. if all original images are RGB and am not sure why you would rasterize in CMYK?
b) If you want to extract embedded images in PDF, you should use approach shown in ImageExtract (
http://www.pdftron.com/pdfnet/samplecode.html#ImageExtract). This way you will extract images in their native/original resolution, color format, and even the compression type.
Thanks for the info. I am looking to rasterize entire PDF pages, and I need to rasterize to RGB. The trouble is that I have input files in a variety of colorspaces and need to handle them all cleanly. Input RGB files look good as currently converted, but when converting a CMYK source file to RGB, the output images are oversaturated.
It sounds like PDFNet.SetColorManagement might be just what I was looking for. Thanks.