Java API для преобразования TIFF или PNG или JPEG в SVG - PullRequest
2 голосов
/ 24 января 2012

У меня есть требование конвертировать TIFF или PNG или JPEG в SVG.Можно ли конвертировать в SVG.Преобразование PNG / TIFF / JPEG в SVG, есть ли шанс уменьшить размер?

Ответы [ 3 ]

1 голос
/ 10 октября 2016

Imagetracer - это бесплатная библиотека с открытым исходным кодом (Public Domain) и приложение, которые могут быть полезны. Отказ от ответственности: я сделал это.

Получить ImageTracer.jar из

https://github.com/jankovicsandras/imagetracerjava

тогда вы можете использовать его из CLI следующим образом:

java -jar ImageTracer.jar input.png outfilename output.svg ltres 1 qtres 1 pathomit 16 colorsampling 1 numberofcolors 4 mincolorratio 0.02 colorquantcycles 3 scale 0.5 simplifytolerance 0 roundcoords 0 desc 0 blurradius 5 blurdelta 20

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

Преобразование растра в вектор обычно не уменьшает размер файла, особенно при выводе SVG, поскольку SVG представляет собой подробный текстовый формат на основе XML без сжатия. Но это очень зависит от входного изображения: простой черно-белый логотип с разрешением в несколько мегапикселей, сохраненный как BMP, может быть уменьшен с мегабайтов до килобайтов, но цветная фотография JPEG может увеличиться с десятков килобайт до мегабайт выходного SVG-файла.

Вы можете проверить это также с Inkscape (или Potrace): результат SVG обычно больше, чем входное изображение.

1 голос
/ 24 января 2012

Взгляните на батик:

http://xmlgraphics.apache.org/batik/

Звучит так, как будто оно должно соответствовать, по крайней мере, большинству ваших требований. Если есть какой-то формат, который Batik не поддерживает, вы всегда можете получить дополнительную библиотеку для чтения его в некоторый «стандартный» растровый формат, а затем использовать Batik для преобразования его в SVG.

0 голосов
/ 25 января 2012

Хотите обернуть растровые изображения в контейнер SVG или проследить растры до векторов?Если последнее, то это не простая проблема, но вы можете использовать библиотеку трассировки для этого.Нет никаких гарантий, что размер файла будет уменьшен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...