我的问题类似于this one,除了我想在iOS中进行,而不是java或命令行。
鉴于:我有一个pdf文件从我的包中读入(或文档目录或任何地方。)
例如:如果pdf是以300dpi扫描的一堆页面,并且我想以72dpi显示它们,我的目标是获得17倍的加速。
谢谢!
答案 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以适当的目标分辨率呈现,包括您期望的任何文本,字形或向量元素。