如何在pdf(iOS)中对图像进行下采样?

时间:2012-05-03 01:10:12

标签: ios pdf

我的问题类似于this one,除了我想在iOS中进行,而不是java或命令行。

鉴于:我有一个pdf文件从我的包中读入(或文档目录或任何地方。)

  • 是否包含图片?
  • 如果是这样,他们的解决方案是什么?
  • 如果> myMaxResolution,如何使用myMaxResolution渲染的图像创建PDF视图?

例如:如果pdf是以300dpi扫描的一堆页面,并且我想以72dpi显示它们,我的目标是获得17倍的加速。

谢谢!

1 个答案:

答案 0 :(得分:0)

我假设您要定义目标分辨率以支持包含太大而无法加载到iOS设备内存中的图像的文档(根据显示PDF页面的要求)?

查看Apple示例代码项目Large Image Downsizing。 您可以修改该样本以呈现PDF页面(而不是图像),但可以从相同的增量下采样中受益。您可以定义目标分辨率,并且永远不会尝试将整个源文档一次性加载到内存中。相反,目标PDF渲染以增量方式“组装”,以您定义的目标分辨率。无论源分辨率实际是什么,您都可以这样做。

增量图像解码仅适用于iOS,适用于TIFF,JPEG,PNG。但是,不支持BMP,GIF,隔行扫描图像。在您的上下文中,这仅表示如果您的PDF包含后一种类型的图像,它们将被完整地解码到内存中,因此希望它们相对较小并且PDF中的大图像是以前的格式。

如自述文件示例中所述,源PDF可以存在于应用程序包,照片滚动或其他位置(例如下载的OTA)。

  

此外,我修改了样本以支持PDF。你可以download it here。   在我的测试中,目标PDF以适当的目标分辨率呈现,包括您期望的任何文本,字形或向量元素。