- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 PDF 文件,我想以轮廓形式绘制。我想在文档中绘制前几页,每个页面都在自己的 UIImage 中,以便在按钮上使用,以便单击时,主显示将导航到单击的页面。
但是,CGContextDrawPDFPage 在尝试绘制页面时似乎使用了大量内存。尽管图像的高度应该只有 100 像素左右,但应用程序在绘制一页时会崩溃,根据 Instruments 的说法,仅为一页分配了大约 13 MB 的内存。
这是绘图代码:
//Note: This is always called in a background thread, but the autorelease pool is setup elsewhere
+ (void) drawPage:(CGPDFPageRef)m_page inRect:(CGRect)rect inContext:(CGContextRef) g {
CGPDFBox box = kCGPDFMediaBox;
CGAffineTransform t = CGPDFPageGetDrawingTransform(m_page, box, rect, 0,YES);
CGRect pageRect = CGPDFPageGetBoxRect(m_page, box);
//Start the drawing
CGContextSaveGState(g);
//Clip to our bounding box
CGContextClipToRect(g, pageRect);
//Now we have to flip the origin to top-left instead of bottom left
//First: flip y-axix
CGContextScaleCTM(g, 1, -1);
//Second: move origin
CGContextTranslateCTM(g, 0, -rect.size.height);
//Now apply the transform to draw the page within the rect
CGContextConcatCTM(g, t);
//Finally, draw the page
//The important bit. Commenting out the following line "fixes" the crashing issue.
CGContextDrawPDFPage(g, m_page);
CGContextRestoreGState(g);
}
有没有更好的方法来绘制这个图像,并且不占用大量内存?
最佳答案
尝试添加:
CGContextSetInterpolationQuality(g, kCGInterpolationHigh);
CGContextSetRenderingIntent(g, kCGRenderingIntentDefault);
之前:
CGContextDrawPDFPage(g, m_page);
我遇到了类似的问题,添加上面的 2 个函数调用导致渲染使用的内存减少了 5 倍。可能是 CGContextXXX 绘图函数中的错误
关于iphone - CGContextDrawPDFPage占用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2975240/
我有一个 PDF 阅读器应用程序,它在 UIScrollView 中显示多个带有 PDF 层的 UIViewController。 我遇到的是当用户滑动 ScrollView 时偶尔会崩溃。 Fabr
我正在尝试渲染一个带有一些注释的 PDF 页面(发送到电子邮件),大多数情况下它工作正常。 但是,有了这个 PDF特别是它似乎每次在第一页调用 CGContextDrawPDFPage 时都会崩溃。我
这是 ipad 杂志应用程序。我们需要读取 PDF 并将其转换为 PNG 图像作为缩略图。在转换之前读取 PDF(调用 CGContextDrawPDFPage)后,内存会快速增加,并且永远不会释放,
当我用 Instruments 分析我的应用程序时,我发现 CGContextDrawPDFPage 分配的数据并没有立即释放。由于我的程序收到很多“内存警告”,我想释放尽可能多的内存,但我不知道如何
当我用 Instruments 分析我的应用程序时,我发现 CGContextDrawPDFPage 分配的数据并没有立即释放。应用因 CGContextDrawPDFPage 而崩溃。 你好,这是我
我继承了一些打开源 PDF 并创建一个 CGContextRef 的 iOS 代码,我们从源文档向其绘制单个页面。问题是某些页面只有一个文档,不幸的是我们的帮助文档,这导致此代码崩溃。 最终目标是一次
我在某些 PDF 日志记录中遇到问题,无法控制某些节点编号和字体系列,这导致我的应用程序变慢。有人知道如何禁用日志记录吗? 我用过: CGContextDrawPDFPage(上下文,页面); 并非所
What is the best way to use the custom UI graphics on the iPhone? 我遇到了 CGContextDrawPDFPage 和 Panic
我在尝试编写一个简单的 Automator 脚本来组合多个单页 PDF 文件时遇到了这个问题。我有 88 个文件需要组合,每个文件大小正好为 300KB,所以我预计最终产品约为 30MB;使用“合并
在 iOS 8.1 下,当使用 CGContextDrawPDFPage 将 PDF 页面渲染到图形上下文时,我遇到了内存泄漏。它不会发生在模拟器中,但每次我这样做(在 iPad Air 上)时,我都
我需要显示从 Web 服务接收的 PDF 文件的内容。 我的问题是所有 PDF 框返回相同的值。您知道我正在使用的文件可能有什么问题吗? CGPDFPageRef drawPDFPageRef = C
我正在查看 Apple 的 ZoomingPDFViewer示例(来源可从链接获得)。当它运行时,它给出了这个错误: ZoomingPDFViewer[5751] : KSTFBB+Helvetic
我是一名优秀的程序员,十分优秀!