【问题标题】:pdf images color space trouble iospdf 图片 色彩空间 麻烦 ios
【发布时间】:2013-09-21 08:48:29
【问题描述】:

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

在此先感谢任何人都可以帮助解决这个问题。

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

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

这就是它的外观:

作为参考,绘制 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
}

如果有人可以帮助我解决这个问题,请。

大卫

【问题讨论】:

    标签: ios pdf quartz-2d cgcolorspace


    【解决方案1】:

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

    为此,我必须使用 rbg 或 cmyk 颜色空间导出 pdf 源代码。

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

    【讨论】:

    • 嗨@ScottH 我从来没有真正解决过这个问题,只是要求设计人员生成具有已定义色彩空间的原始 PDF 文件。
    • 嗨,David,你能评论一下下载 MUPDF for iOS 的直接链接吗?我自己找不到。
    【解决方案2】:

    我在这方面遇到了很大的麻烦。我终于弄明白了。

    1. Apple 将 sRGB 用于 iOS。为此,您必须将 pdf(转换为)保存为 sRGB。我使用 Illustrator -> new -> profile = "web", color space = "RGB" -> 另存为 PDF ->(在选项中)转换为 sRGB。

    2. 注意!当您将过去的路径复制到 RGB 中的新画板时,Illustrator 可能已更改了 RGB 值。我花了很长时间才弄明白...即使保存到 PDF 部分是正确的,Illustrator 还是通过更改默认值来打破它,使一切变得更暗更沉闷。

    希望这会有所帮助!

    【讨论】: