2010-07-07 7 views
3

Я бы хотел (а) преобразовать изображения, которые были загружены пользователем (в различных форматах и ​​условиях) в формат векторного изображения, такой как .eps. Я в первую очередь работаю на PHP.Преобразование растровых изображений на серверные изображения в векторные изображения

Какие существуют варианты?

+0

Возможный дубликат [Покрытие SVG в PNG/JPEG/BMP и наоборот? ] (http://stackoverflow.com/questions/4021756/coverstion-of-svg-into-png-jpeg-bmp-and-vice-versa) – Gordon

ответ

4

Существует небольшое количество проектов программного обеспечения для автотрассировки, выпущенных под графическим процессором (например, POTRACE, которые вы можете запускать с помощью системных команд. Я не могу подтвердить их качество. Трассировка почти всегда требует некоторого элемента человеческого наблюдения, чтобы избежать вещей выглядя как беспорядок сломанной керамики, но вы не узнаете, пока не попытаетесь. Вместо того, чтобы запускать трассировщик через PHP, я бы использовал PHP просто для сохранения входящих изображений во временную папку, а затем через cronjob (одно- или двух- в минуту), прокручивайте через папку для хранения в партиях (вы можете шагать туда таким образом и не использовать его как способ сделать ваш сайт).

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

-7

PHP не является редактором изображений. это гипертекст препроцессор.
Вам нужно перейти на serverfault.com или даже лучше на какой-то ресурс обработки изображений и попросить там какую-нибудь утилиту командной строки, которую можно запустить с PHP с помощью команды system().

+3

Я понимаю, что PHP не является редактором изображений. PHP может взаимодействовать со многими полезными библиотеками, такими как GD и ImageMagik, не полагаясь на system(). –

+0

@Jon Я не могу сказать, что GD - это то, что полезно, но в целом - да. Он может даже управлять гидравлическим прессом через COM-порт. Это не значит, что здесь подходят вопросы о гидравлических прессах. –

+1

@ Col.Shrapnel, если я чего-то не упускаю, PHP - это Turing Complete, поэтому вы можете программировать на нем что-нибудь вычислимое, а оценка векторов для представления растрового изображения, безусловно, может быть вычислимой.Я также не вижу, как этот вопрос отличается от множества других вопросов, которые используют «использование библиотеки xxx» в качестве допустимого ответа (например, «Что такое регулярное выражение, которое я использую для синтаксического анализа src изображений на этой странице в .Net?» -> «Вам следует пропустить регулярные выражения и использовать HtmlAgilityPack»). – jball

0

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

Вы можете использовать ImageTracer.jar из

https://github.com/jankovicsandras/imagetracerjava

, как это с PHP:

<?php exec("java -jar ImageTracer.jar input.png outfilename output.svg"); ?>

Вы можете также использовать версию JavaScript с Node.js на сервере сторона, вот пример кода:

https://github.com/jankovicsandras/imagetracerjs/blob/master/nodetest/nodetest.js