You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中用magick压缩PDF效率远低于命令行,如何优化?

优化R中PDF压缩速度的方法

你的问题核心在于:用magick包的R函数处理时,多了R与ImageMagick之间的数据转换和内存存储开销,而直接控制台命令是ImageMagick独立完成操作,没有中间层损耗。

最优方案:在R中直接调用系统magick命令

用R的system2或system函数直接执行控制台的magick命令,速度和你直接在控制台运行完全一致,还能在R脚本里完成操作:

  • 推荐用system2(更安全,适合处理带空格的文件名):
system2("magick", args = c("-density", "150", "-compress", "zip", "big.pdf", "small.pdf"))
  • 简单场景也可以用system:
system("magick -density 150 -compress zip big.pdf small.pdf")

原方法慢的原因

magick::image_read_pdf会把PDF的每一页都解码成R中的图像对象,这个过程需要在R和ImageMagick之间传递大量数据,还要把所有页面的图像都存在内存里;之后image_write又要把这些R对象重新编码回PDF,额外增加了很多不必要的转换开销。而直接执行控制台命令时,ImageMagick进程直接读取、处理、写入PDF,全程没有R层的干预,所以速度快得多。

内容的提问来源于stack exchange,提问作者ckluss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 23:57:35