1

我需要从 PostScript 文件 (.ppf) 中提取位图。它使用 RLE 压缩并使用 ASCIIHexEncode 编码。我将从 PHP 中调用它。我想知道是否有一种优雅的方法可以做到这一点。我不想重新发明轮子,但我想使用现有的库。有没有办法从 PostScript、Ghostscript 或 imagick 调用压缩过滤器?

4

1 回答 1

3

您可以编写一个 PostScript 程序来对输入运行压缩/解压缩过滤器。因此,如果您已经在名为 myfile.rle.hex 的文件中提取了位图数据,则可以将其放入文件中(例如,名为 decode.ps):

/InFile (/home/ken/myfile.rle.hex) (r) file /ASCIIHexDecode filter 
/RLEDecode filter 
def
/OutFile (/home/ken/myfile.raw) (w) file def
/Data 32768 string def

{
    InFile Data readstring {
    OutFile exch writestring
    } {
    OutFile exch writestring
    exit
    } ifelse
} loop

InFile closefile
OutFile closefile

然后是“gs decode.ps”。还有其他方法可以实现这一点,您可以使用 -c 将全部内容放在 Ghostscript 命令行上,您可以使用 -c 在命令行上定义文件名,然后运行 ​​decode.ps 但替换 (/home/ken/ myfile.hex.rle) 使用您在命令行中定义的文件名。您可以使用其他过滤器来查找原始 PostScript 中的数据。

但是如果不了解更多关于您如何看待输入和输出工作的信息,我无法真正提出任何建议。

于 2013-05-18T14:03:32.167 回答