调整图像大小并损失质量

调整图像大小并损失质量

我想用不同大小的图像创建一个 pdf 文档,并将每幅图像调整到适合文本尺寸,以便将它们包含在文档中,

\includegraphics[width=\textwidth, height=\textheight, keepaspectratio]{file.jpg}

问题是这些图像非常巨大:总共 160MB;并且这个大小保留在 pdf 输出中(160.9MB),但由于我调整了每个图像的大小,因此我不需要那么多像素信息。

我如何利用调整每幅图像的大小来赚取空间?

答案1

PDF 是一种可扩展格式,因此您是否能看到这些像素取决于您的输出分辨率,即 PDF 查看器的屏幕分辨率和缩放级别或打印机的纸张大小和 dpi 数。两者都可能非常高(您显然可以花不到 100 欧元/美元/英镑购买一台分辨率为 4800 dpi 的打印机,而在 4K 或 Retina 显示屏上使用 Adob​​e Reader 达到 6400% 也需要非矢量图形具有一定的分辨率)。

我的意思是,记住,这曾经是原生屏幕分辨率:

马里奥

长话短说:TeX 无法知道你需要什么分辨率,只有你自己知道(有时这很难决定)。如果你只需要 72 dpi 的分辨率来进行屏幕阅读(请不要这样做,但这是你的决定),那么将它乘以图像的英寸大小,你就知道该说什么了瘸子或者您选择的任何软件(参见 Werner 的评论)。此外,按照 JLDiaz 的建议巧妙使用 JPEG 参数可能是一个非常好的主意。

答案2

正如其他人所建议的,您可以对图像进行一些预处理。您可以使用任何您熟悉的、可以同时批量处理多个文件的工具来完成此操作。

如果您使用 ConTeXt,您可以非常轻松地将其挂接到图形包含例程中。您可能也可以在 LaTeX 中执行此操作。这是一个使用 graphicsmagick 减小图像大小并压缩图像的示例。

\startluacode
  figures.converters.jpg = {
    degradejpg = function(oldname,newname)
      os.execute(string.format('gm convert -size 80%% -quality 20%% "%s" "%s"',oldname,newname))
    end
  }
  figures.registersuffix("degradejpg","jpg")
\stopluacode

\starttext
  %% unmodified inclusion
  \externalfigure [hacker]

  %% reduced size and higher compression
  \externalfigure [hacker] [conversion=degradejpg]
\stoptext

结果

相关内容