Как изменить размер изображения в Postscript (Colorimage) - PullRequest
1 голос
/ 08 июля 2019

В настоящее время я работаю над расширением программы, которая генерирует файл .eps в качестве промежуточного результата, а затем создает из него PDF-файл.До сих пор программа могла только набирать текст, но я хочу включить .jpg изображения.Так как я раньше не использовал Postscript, я гуглил и нашел этот пост о том, как включать изображения: Простой способ добавить изображение в postscript

Я использовал этот основной код и получил что-то вродеВот это (добавлены переводы строк):

%!PS-Adobe-2.0
%%Creator: ...
%%Title: ...
%%Pages: 10
%%PageOrder: Ascend
%%BoundingBox: 0 0 595 842
%%EndComments
...
gsave 
197.500000 571.000000 translate   
200 137 scale  
300.000000   
137.000000   
8   
[500 0 0 -133 0 133]   
(/home/.../Desktop/test.jpg) (r) file /DCTDecode filter   
false   
3   
colorimage grestore 
...
end
grestore

Теперь, как я понимаю код, изображение всегда должно быть 200 * 137 пикселей.Тем не менее, в зависимости от изображения я выбираю размер варьируется, и я не могу понять, почему.

Я пытался играть со значениями, но я просто не понимаю поведение на разных изображениях.Я также пытался добавить теги разрешения EXIF, но, похоже, они никак не влияют.

Я также пытался выяснить, что делают значения массива ([500 0 0 -133 0 133]), но яЯ все еще не совсем уверен.

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

Редактировать: преобразование выполняется с epstopdf -nosafer temp.ps -o=out.pdf

1 Ответ

1 голос
/ 09 июля 2019

Как любезно предложил Luser Droog в комментарии выше, проблема была в матрице. Подробный ответ здесь: Как включить img в postscript

В основном просто используйте [1 0 0 1 0 0] или напишите матрицу так:

["+ img_width +" 0 0 "+ -img_height +" 0 "+img_height+"]

...