К сожалению, обычный способ конвертации с помощью ImageMagick (convert) или распространённых графических редакторов даёт EPS файлы довольно большого размера. Есть программы, которые делают эту работу лучше.
Одна из них —
sam2p
— есть в репозиториях Debian, и полученные с помощью её EPS файлы действительно довольно маленькие.Для конвертации в EPS команда будет выглядеть примерно так:
$ sam2p image.png EPS: image.eps
Соответственно для конвертации в PDF:
$ sam2p image.png PDF: image.pdf
Среди полезных опций программы
sam2p
есть выбор версии PostScript, разрешения получаемого файла (в dpi) и алгоритма сжатия (LZW, ZIP, RLE, FAX, DCT, JPEG).Вот, к примеру, результат конвертирования скриншота программы Google Earth с помощью sam2p и с помощью ImageMagick:
$ ls -rSsk1 google-earth-screenshot*
1756 google-earth-screenshot.png
3016 google-earth-screenshot-(sam2p).eps
4304 google-earth-screenshot-(convert).eps
EPS, конечно, получился больше, чем PNG (кто бы удивилялся). Интереснее сравнить полученные EPS между собой. В данном случае разница в 1,5 раза. Может показаться, что это не существенно, но если таких изображений много, то накопится прилично. А если изображения попроще, чем спутниковые фотоснимки, разница более заметна.
Например, вот такая картинка в формате PNG:
И вот такие результаты конвертации в EPS:
$ ls -rSs1k pooh-pooh*
84 pooh-pooh.png
156 pooh-pooh-(sam2p).eps
872 pooh-pooh-(convert).eps
Разница между convert и sam2p в 5,5 раз, в пользу последнего!
Есть ещё на CTAN пакет
bmeps
, который, по слухам, тоже неплохо справляется с задачей конвертации растра в EPS — но его я пока не пробовал.Ссылки по теме:
страница sam2p
страница bmeps
P.S. Я написал эту заметку также по-английски: Effective conversion from raster to EPS.