pdf图像色彩空间麻烦ios

时间:2013-09-17 03:41:53

标签: ios pdf quartz-2d cgcolorspace

修改 我一直在使用的pdf文件显然是“indesign”格式(无论这意味着什么),因此没有颜色配置文件,是否有人知道如果可能的话我如何自己添加配置文件? 编辑结束

提前感谢任何人都可以解决这个问题。

首先让我告诉你,我在为IOS开发方面有点新意,我试图在xcode上使用石英制作一个pdf阅读器,一切正常,除了图像的渲染,由于某种原因颜色空间完全搞砸了。请看一下这个例子。

这是我在IOS设备上获得的图像:

Image with wrong colorspace

这就是它看起来的样子:

enter image description here

作为参考,绘制pdf页面的代码部分如下:

- (void)drawLayer:(CATiledLayer *)layer inContext:(CGContextRef)context
{

ReaderContentPage *readerContentPage = self; // Retain self

CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f); // White

CGContextFillRect(context, CGContextGetClipBoundingBox(context)); // Fill

CGContextTranslateCTM(context, 0.0f, self.bounds.size.height); CGContextScaleCTM(context, 1.0f, -1.0f);

CGContextConcatCTM(context, CGPDFPageGetDrawingTransform(_PDFPageRef, kCGPDFCropBox, self.bounds, 0, true));

//CGContextSetRenderingIntent(context, kCGRenderingIntentDefault); CGContextSetInterpolationQuality(context, kCGInterpolationDefault);

CGContextDrawPDFPage(context, _PDFPageRef); // Render the PDF page into the context

if (readerContentPage != nil) readerContentPage = nil; // Release self
}

请有人帮我解决这个问题。

大卫

2 个答案:

答案 0 :(得分:2)

正如我的问题所指出的那个问题是由于pdf源文件缺少色彩空间造成的,在这个应用程序的android版本上我使用的是非常好的库调用MUPDF,也可用于ios但不幸的是在我的如果这个版本比使用石英框架慢。

至于此,我必须使用rbg或cmyk颜色空间导出pdf源。

如果有人知道如何在应用程序中添加色彩空间我会很高兴知道它

答案 1 :(得分:0)

我遇到了很多麻烦。我终于明白了。

  1. Apple使用sRGB for iOS。为此,您必须在sRGB中保存pdf(转换为)。我使用Illustrator执行此操作 - >新的 - > profile =“web”,color space =“RGB” - >另存为PDF - > (在选项中)转换为sRGB。

  2. 小心!将过去的路径复制到RGB中的新画板时,Illustrator可能已更改RGB值。这花了我很多年才弄明白......即使保存为PDF部分是正确的,Illustrator也会通过默认更改值来打破它,使一切变得更暗,更暗淡。

  3. 希望这有帮助!