检查文件是否包含光栅或矢量元素?(pdf, eps, ai)

Vla*_*mir 7 php vector raster image-processing

有没有办法检查文件中是否包含光栅元素?我有兴趣为 .pdf、.eps 和 .ai 格式执行此操作。

如果文件只是矢量,我将它转换为 .svg,如果它有一些光栅元素,我必须将它转换为 .png 文件。

我正在使用 PHP,但我也可以使用任何命令行工具。例如,我正在考虑使用 Inkscape 进行实际转换。

Yea*_*eak 5

您可以在 pdf 文件上运行此命令并检查文件中是否存在任何光栅:

  grep -c -i "/image" thisfile.pdf
Run Code Online (Sandbox Code Playgroud)


joh*_*nes -3

不,那里没有。

以下是 eps 的理论计算机科学证明,证明所要求的属性无法计算。

PostScript(ps) 和 Encapsulated PostScript(eps) 是图灵完整的编程语言。在理论计算机科学中,有证据表明用图灵完备语言编写的程序的某些属性无法计算。例如,这样的属性是给定程序是否曾经终止。所以我们知道存在一个 PostScript 程序,但我们无法判断它是否终止。如果我们采用该程序,则从中删除所有光栅对象,并仅插入一个光栅对象,当且仅当程序终止时,该对象才会打印在文档上。我们通过插入此光栅打印步骤作为每个程序部分的最后一步来实现此目的,这可能导致终止(直接在每个退出命令之前(如果存在这样的命令)和主程序的末尾)。现在我们有一个 PostScript 程序,我们无法判断它是否包含打印光栅对象。它确实无法被告知,因为如果我们知道它是否包含打印它,我们也知道它是否终止,并且我们已经知道,我们无法计算这个属性。qed

  • 从我不理解的某种形式的理论角度来看,这可能是正确的,但令我困扰的是,它作为一个问题的公认答案仍然有效。既然EPS可以被打开和渲染,当然可以确定它是否包含光栅元素。每次我打开 EPS 文件时,无论可能与否,Adobe Illustrator 都会执行此操作。 (2认同)