Intereting Posts
PHP include (): размер и производительность файла Модули CI работают на локальном уровне, но 404 не найдены на сервере получить серверный ram с php Как получить результаты из API Википедии с PHP? используя mod_rewrite с XAMPP и Windows 7 – 64 бит? PHP: цикл через многомерный массив Как вызвать функцию из .so-файла, используя php-скрипт? проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1 изменить цвет элементов списка в соответствии с условием Пакет Datatables для Laravel 5 с Parse как источник данных Как удалить элементы с одним и тем же ключом префикса в memcached с помощью расширения PHP memcache? PHP – Как заставить ошибки Shell выходить на экран ошибка с ошибкой сервера wamp # 2002 не удалось открыть phpMyAdmin call_user_func (массив ($ this, $ method), $ par) из конструктора родителя? Как использовать шифрование SHA1 вместо BCrypt в Laravel 4?

Преобразование SVG в PNG / JPEG / BMP и наоборот?

Код в PHP для преобразования SVG в другие форматы изображений и наоборот?

Ну, вы, вероятно, захотите использовать функции ImageMagick или GD . Но имейте в виду, что вы не можете конвертировать из PNG / JPEG / BMP в SVG, это улица с односторонним движением.

Редактировать: Разработка

Преобразование SVG (векторного) изображения в PNG (растровое) изображение тривиально. ImageMagick может сделать это точно, и я вполне уверен, что GD также должен быть в состоянии. Если нет, существуют также привязки PHP для rsvg.

С другой стороны, преобразование PNG (bitmap) в SVG (вектор) является цельной «нулевой проблемой». Ядро проблемы заключается в том, что растровое изображение довольно просто содержит меньше информации, чем векторное изображение: информация о формах, строках и структуре, в частности, сглажена к пиксельной вершине и безвозвратно утеряна. В некоторых случаях эта информация может быть восстановлена, но никогда не будет восстановлена ​​или вновь открыта.

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

Только Джон Скит может преобразовать PNG в SVG.

Reedit: Автотрассировка и личный опыт

Некоторое время назад я действительно немного поработал над трассировкой растрового изображения для создания прототипа небольшого веб-приложения ( найти его здесь, MNSFW, требуется FFx / Safari / Opera ). Создание вектора было выполнено с использованием potrace для многократного отслеживания порогового черно-белого изображения для выделения элементов и последующей реконструкции изображения вручную. Это был изнурительный процесс, но в то время я не работал, и мне было нечего делать.

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

  1. Хорошее исходное изображение
  2. Много усилий

Несколько вариантов

  1. вставляйте изображение как dataURI. Это технически не конверсия, хотя, но куча онлайн-конвертеров работает именно так.

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

  3. Вы взаимодействуете с AutoTrace (через system ) для анализа изображений, которые хотите преобразовать, чтобы получить приблизительный. Inputformats – это BMP, TGA, PNM, PPM, PGM, PBM и те, которые поддерживаются ImageMagick. Exportformats – Postscript, svg, xfig, swf, pstoedit, emf, dxf, cgm, mif, p2e и sk. AutoTrace – это FOSS.

Однако, если вы идете с 3, не ожидайте, что результат будет выглядеть слишком сильно, как вход после этого. Как уже указывали другие, вы потеряете детали во время процесса конверсии.

  • Онлайн-демонстрация конверсии с помощью AutoTrace