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

时间:2010-04-29 04:19:43

标签: c# image-processing postscript ghostscript

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

我曾经将位图转换为HEX代码并使用colorimage进行渲染。它适用于小图标,但是当我尝试嵌入较小的图像时,我在ghostscript中遇到了/ limitcheck错误。 似乎ghostscript中的位图存在内存限制。

我正在寻找一个可以在没有第三方/预处理的情况下运行的解决方案,而不是ghostscript本身。

3 个答案:

答案 0 :(得分:2)

来自ImageMagick的

Convert逐行读取编码图像数据。在示例图像上尝试并读取PS输出。

答案 1 :(得分:1)

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

我们最近遇到了一个问题,我们将postscript代码从我们的主机发送到打印机。我们尝试使用ImageMagik转换它并使结果在GhostScript中工作,但我们使用的大型机语言有大型机与代码的打印机传输问题。 InkScape转换更简单,更基本,我们能够轻松识别和删除临时代码。使用新的InkScape图形在3小时内解决了与ImageMagik转换器图形的2个月斗争。

我认为您会对InkScape的结果感到满意,无论您是想转换图像还是拥有一些简单的Postscript图形示例。此外,如果您正在构建转换器,InkScape是开源的!

答案 2 :(得分:1)

Postscript中的图像本身没有内存限制;但大多数Postscript解释器使用16位字段作为复合对象的大小,因此所有字符串和数组(也可能是dicts)限制为65536个条目。

由于这个原因,一个常见的技巧(Adobe自己在蓝皮书中向我们展示)是用于图像(或彩色图像)数据采集程序从源文件预读并用较小的字符串填充数据。但是你可以使用65536 string(可能稍微低一点,为了“安全”)来为每次通话挖掘更多数据。

绿皮书是设计PS程序速度或大小时考虑事项的最佳Adobe资源(而不仅仅是“让它正常工作”)。如果你有更多的处理能力和更窄的带宽,你应该压缩一切并在数据采集过程中解压缩。