Ghostscript: масштабирование очень маленького eps до большого jpg

Я работаю с ghostscript, чтобы растеризовать файлы eps в формат jpg. То, с чем я борюсь и не могу найти очевидного ответа, - как правильно "увеличить" файл eps с очень маленькой ограничительной рамкой. Пример:

%%BoundingBox: 0 0 71 47
%%HiResBoundingBox: 0 0 70.9961 46.0020

Намного больше пикселей, чем у нас есть точек (то есть 4 мегапикселя) с опцией dDEVICEWIDTH/HEIGHT. Пример вызова GS с соответствующими опциями, которые мы используем:

gs -sDEVICE=jpeg -dEPSFitPage -dJPEGQ=100 -dBATCH -r300 -g2458x1628 -sOutputFile=output.jpg input.eps

В результате получается JPG с желаемыми размерами в пикселях, но он сильно пикселизирован, теряя все детали вектора. Я экспериментировал с вариантами документации ghostscript, которые казались потенциально актуальными:

-r1000...
-dInterpolateControl=<-1 through 1000>
-dGraphicsAlphaBits=<1,2,4>

Похоже, что ни один из них не влияет на пикселизацию результирующего jpg. Этот эффект, кажется, напрямую коррелирует с точками, представленными ограничительной рамкой, то есть одна точка == один пиксель, любое увеличение масштаба приводит к потере качества / пикселей.

Я смущен тем, почему это так. На мой взгляд (такой, как она есть) векторная информация в eps должна иметь возможность масштабирования до произвольного числа пикселей. Может это? Я скучаю по чему-то очевидному и глупому?

2 ответа

Вы не предоставили файл EPS, поэтому трудно точно определить проблему, вот несколько соображений:

1) Не связывайтесь с качеством JPEG и, фактически, не используйте JPEG. Выпишите в формате без потерь, как TIFF. Это предотвратит искажения JPEG-квантования с выводом и устранит возможную проблему.

2) Проверьте EPS, чтобы увидеть, содержит ли он изображение. Это кажется наиболее вероятной проблемой для меня. Программы PostScript могут содержать как данные изображения, так и вектор, если ваш EPS содержит изображение с низким разрешением, тогда вам ничего не поможет, результат будет ограничен количеством образцов изображения на входе.

Таким образом, оказывается, что это связано с настройками "выравнивания прозрачности", выбранными при первоначальном сохранении файла. Я использую иллюстратор, и они варьируются от "низких" до "сложных" пресетов (по умолчанию "средний").

"Средние" настройки

"Сложные" настройки

В очень маленьком eps с эффектами прозрачности, сохраненными с настройками по умолчанию "medium", результирующий растр получается очень низкого качества, и, похоже, ghostscript ничего не может с этим поделать. Если вы выбираете "сложный", растр имеет полное качество / разрешение. Если вместо этого вы масштабируете иллюстрацию примерно до того же количества точек, что и пиксели, "средние" настройки приводят к растру сравнимого качества с использованием "сложных" настроек для маленьких.

Мне кажется, что ничего нельзя сделать, чтобы решить эту проблему после того, как файл уже создан.

Другие вопросы по тегам