代码之家  ›  专栏  ›  技术社区  ›  Dennis C

将大型光栅图形图像(位图、PNG、JPEG等)转换为非矢量Postscript

  •  2
  • Dennis C  · 技术社区  · 16 年前

    如何转换大图像并将其嵌入Postscript?

    我曾经把位图转换成十六进制代码并用colorimage进行渲染。它适用于小图标,但当我尝试嵌入较小的较大图像时,在ghostscript中遇到了一个/limitcheck错误。 ghostscript中的位图似乎有内存限制。

    我正在寻找一个解决方案,可以运行没有第三方/预处理其他然后鬼脚本本身。

    3 回复  |  直到 16 年前
        1
  •  2
  •   lhf    16 年前

    Convert 从imagemagick中逐行读取编码的图像数据。在一个示例图像上尝试它并读取ps输出。

        2
  •  1
  •   Shadeclan    16 年前

    免费矢量图形程序 InkScape 将位图转换为嵌入转换图形的易于理解的代码。

    我们最近遇到了一个问题,从主机向打印机发送postscript代码。我们尝试用imagemagik对其进行转换,得到的结果可以在ghostscript中使用,但我们使用的大型机语言存在大型机到打印机的代码传输问题。Inkscape转换要简单得多,更基本得多,而且我们能够轻松地识别和删除即席代码。与imagemagik转换器的图形进行了2个月的斗争,在3小时内用新的inkscape图形解决了这个问题。

    我认为你会对Inkscape的结果感到满意,不管你是想转换一个图像还是有一个简单的Postscript图形的例子。另外,如果您正在构建转换器,inkscape是开源的!

        3
  •  1
  •   luser droog    13 年前

    postscript本身对图像没有内存限制;但是大多数postscript解释器使用16位字段来表示复合对象的大小,因此所有字符串和数组(可能还有dict)都被限制为65536个条目。

    因此,一个常见的技巧(adobe自己在蓝皮书中向我们展示)是让图像(或colorImage)数据采集过程从源文件中预先读取,然后用勺子将数据输入到更小的字符串中。但你可以用 65536 string (为了“安全”起见,可能要低一点)以便每次通话都能存储更多的数据。

    绿皮书是最好的adobe资源,在设计速度或大小的ps程序时需要考虑的事情(而不仅仅是“让它正常工作”)。如果你有更多的处理能力和更窄的带宽,也许你应该在数据采集过程中压缩所有内容并解压缩。