2014-10-11 2 views
2

Я пытаюсь поместить изображение png в документ постскриптума для преобразования в pdf-файл, используя Ghostscript (v 9.15) ps2pdf. Я обнаружил, что следующий код хорошо работает с файлом jpg, но мне нужно импортировать файлы png. Похоже, мне нужен другой фильтр, но я не могу найти тот, который работает. у кого-нибудь есть решение?Как импортировать файл png в Postscript с Ghostscript?

239      % number of pixels in the horizontal axis 
67      % number of pixels in the vertical axis 
8      % bits per color channel (1, 2, 4, or 8) 
[239 0 0 -67 0 67]  % transform array... maps unit square to pixel [ w 0 0 -h 0 h ] 
(My_Logo.jpg) (r) file % see page 587 and page 77 for more details 
/DCTDecode filter  % see page 589 
false     % pull channels from separate sources 
3      % 3 color channels (RGB) 
colorimage    % see page 544 and page 288 for more detail 

ответ

4

PostScript не поддерживает PNG напрямую, он поддерживает JPEG, поэтому ваш код выше работает.

Если вы хотите прочитать данные изображения из PNG-файла, вам нужно будет открыть файл, вырезать заголовок, а затем прочитать каждый фрагмент, отдельно разобрав данные из него. Может быть проще всего записать данные растрового изображения в промежуточный файл, но вполне возможно записать декодер потока для предоставления данных, необходимых для источника данных процедурного изображения.

К счастью, PostScript (уровень 3, наверняка, большинство версий уровня 2) поддерживает Flate, поэтому вам не нужно писать код декомпрессии в PostScript, вы можете напрямую использовать фильтр.

Вам нужно указать цветовое пространство, в зависимости от того, использует ли PNG палитру или нет.

PostScript - это язык программирования, поэтому все это возможно, потребуется несколько опытных программистов PostScript, чтобы написать и отладить его, я должен подумать.

ПРИМЕЧАНИЕ! PostScript не поддерживает прозрачность, поэтому вы не можете применять альфа-каналы из PNG-файлов.

+0

Облом. Итак, следующим лучшим решением является просто преобразовать файл png в файл jpg, а затем импортировать его, как указано выше, не так ли? – Mike

+1

JPEG - метод сжатия с потерями, вы, вероятно, лучше всего экспортируете его как необработанное растровое изображение или что-то в равной степени подходящее и использующее это. – KenS

+0

PPM - хорошо документированный «сырой» формат, который будет работать. Это может сделать большие файлы, хотя, поскольку нет никакого сжатия вообще. И вам все равно нужно снять заголовок. –