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