Конвертируйте большое растровое графическое изображение (растровое изображение, PNG, JPEG и т. Д.) В не-векторный постскриптум - PullRequest
2 голосов
/ 29 апреля 2010

Как конвертировать большое изображение и встраивать его в постскриптум?

Я использовал для преобразования растрового изображения в HEX-коды и рендеринга с помощью colorimage. Это работает для маленьких значков, но я сталкиваюсь с ошибкой / limitcheck в ghostscript, когда пытаюсь встроить немного большие изображения. Похоже, в ghostscript есть предел памяти для растрового изображения.

Я ищу решение, которое может работать без сторонней / предварительной обработки, кроме самого ghostscript.

Ответы [ 3 ]

2 голосов
/ 07 мая 2010

Преобразование из ImageMagick читает данные закодированного изображения построчно, как кажется. Попробуйте на примере изображения и прочитайте вывод PS.

1 голос
/ 21 сентября 2012

Нет предела памяти в Postscript для изображений как таковых; но большинство интерпретаторов Postscript используют 16-битное поле для размера составного объекта, поэтому все строки и массивы (и, вероятно, тоже) также ограничены 65536 записями.

По этой причине обычная хитрость (которую Adobe показала нам в «Синей книге») заключается в том, чтобы процедура сбора данных об изображении (или цветном изображении) считывалась впереди из исходного файла и ложно передавала данные в виде небольших строк , Но вы можете использовать 65536 string (возможно, немного ниже, чтобы быть "безопасным"), чтобы набрать больше данных за вызов.

Зеленая книга - лучший источник Adobe для того, о чем стоит подумать при разработке программы PS для скорости или размера (а не просто для того, чтобы «заставить ее работать правильно»). Если вы обладаете большей вычислительной мощностью и более узкой полосой пропускания, возможно, вам следует сжать все и распаковать в процессе сбора данных.

1 голос
/ 11 июня 2010

Бесплатная программа векторной графики InkScape преобразует ваше растровое изображение в легко понятный код, встроенный в преобразованную графику.

У нас недавно была проблема, когда мы отправляли постскрипт-код с нашего мэйнфрейма на принтер. Мы попытались преобразовать его с помощью ImageMagik и получили результат для работы в GhostScript, но у используемого нами языка мэйнфреймов были проблемы с передачей мэйнфреймов на принтер с кодом. Преобразование InkScape было намного проще, гораздо более простым, и мы смогли легко идентифицировать и удалить лишний код. То, что было 2-месячной борьбой с графикой из конвертера ImageMagik, было решено за 3 часа с новой графикой InkScape.

Я думаю, что вы будете довольны результатами InkScape, независимо от того, хотите ли вы преобразовать изображение или имеете пример простой рабочей графики Postscript. Кроме того, если вы создаете конвертер, InkScape с открытым исходным кодом!

...