2013-09-12 4 views
1

Чтобы поместить изображение в PDF с помощью colormap, вы используете высоту и ширину изображения. Можно ли получить эти значения в самой постскриптуме? Тогда вам не нужно менять вещи, когда изображение заменяется на другое с разными размерами.Получение высоты и ширины изображения

+0

Я предполагаю, что это связано с этим вопросом: http://stackoverflow.com/questions/18757354/why-do-i-get-error-invalidfileaccess-in-file. Вы хотите получить размер jpeg из файла ... – agentp

+0

Да, вы очень похожи. –

ответ

0

Не уверен, что вы здесь задаете, размеры изображения - это количество строк и столбцов, а не «размер» изображения. Матрица определяет отображение из пространства пользователя в пространство устройства и, следовательно, отпечатанную область.

Также вы спрашиваете о PostScript и PDF в то же время, что вы имеете в виду? Для чего стоит, операнды изображения в PostScript в целом такие же, как в PDF.

+0

Я хочу использовать PostScript для создания PDF с включенным изображением. Что-то вроде строки http://stackoverflow.com/questions/18757354/why-do-i-get-error-invalidfileaccess-in-file. –

1

Используя предположение Джорджа, что вы пытаетесь извлечь размеры файла jpg, я нашел this answer на этом сайте, который ссылается на this page with example code (C).

Это привело к этому небольшому фрагменту. Обратите внимание, что это произойдет, если файл jpg содержит миниатюру (он вернет размеры миниатюры вместо полного изображения).

%! 

% (filename.jpg) jpgdims width height true 
%       false 
/jpgdims { 
    (r) file dup % f f 
    200 string  % f f buf 
    readstring pop % f buf 

    <FFC0> search { % f post match pre 
     pop pop   % f post 
     exch closefile % post 
     3 4 getinterval % post(3,4) 
     {} forall   % post_3 post_4 post_5 post_6 
     exch 256 mul add % post_3 post_4 post_5*256+post_6 
     3 1 roll   % post_5*256+post_6 post_3 post_4 
     exch 256 mul add % post_5*256+post_6 post_3*256+post_4 
     true    % width height true 
    }{ 
     closefile 
     false 
    } ifelse 

} def 

(ray-0.jpg) jpgdims 

Дополнительная ссылка: wikipedia's JFIF page.

Возможно, было бы проще использовать другой язык сценариев для генерации кода постскриптума, языка, на котором можно выложить программу ImageMagick identify и проанализировать ее текстовый вывод.

$ identify ray-0.jpg 
ray-0.jpg JPEG 320x200 320x200+0+0 8-bit PseudoClass 256c 411B 0.000u 0:00.000 
+0

Я попробую ваш код. Но идея использования другого языка сценариев также хороша. На данный момент я использую Bash уже для некоторой предварительной обработки, поэтому я мог бы принять это и в этом. –

Смежные вопросы