Что ж, вы, вероятно, захотите использовать функции ImageMagick или GD .Но учтите, что вы не можете конвертировать из PNG / JPEG / BMP в SVG, это улица с односторонним движением.
Редактировать: Разработка
Преобразование изображения SVG (вектор) в изображение PNG (растровое изображение) является тривиальным.ImageMagick может сделать это наверняка, и я вполне уверен, что GD тоже сможет.Если нет, то есть также PHP-привязки для rsvg.
Преобразование PNG (растровое изображение) в SVG (вектор), с другой стороны, представляет собой совершенно другую проблему.Суть проблемы заключается в том, что растровое изображение просто содержит меньше информации, чем векторное изображение: информация о формах, линиях и структуре, в частности, сглаживается до пиксельной петли и безвозвратно теряется.В некоторых случаях эта информация может быть восстановлена, но фактически никогда не может быть восстановлена или повторно обнаружена.
Векторизация - это просто метод создания нового векторного изображения на основе растрового изображения, когда компьютер пытается обнаружить линии и формы.Эта проблема далеко не тривиальна, и процесс, безусловно, не идеален и даже не надежен в автоматических условиях.
Только Джон Скит может преобразовать PNG в SVG.
Reedit: Автоматическое отслеживание и личный опыт
Некоторое время назад я действительно проделал некоторую работу по отслеживанию растрового изображения для создания прототипа небольшого веб-приложения ( findздесь, MNSFW, требуется FFx / Safari / Opera ).Создание вектора было выполнено с использованием функции potrace для многократного отслеживания черно-белого изображения с пороговым значением для изоляции элементов и последующей реконструкции изображения вручную.Это был изнурительный процесс, но в то время у меня не было работы, и у меня не было ничего лучше.
Суть в том, что автоматическое отслеживание растровых изображений для создания векторных изображений в лучшем случае является хитом, инадежное получение хороших результатов требует
- хорошего исходного изображения
- много усилий