SVG в JPEG через PHP4

В настоящее время я борюсь с побочным проектом, надеюсь, вы сможете мне помочь.

Я пытаюсь преобразовать изображения SVG в JPEG с помощью PHP4.

Первоначально я пытался подключить java к php через php_java.dll и jar, который поставляется с PHP 4.2.2, но хотя я никогда не получал никаких предупреждений, мне никогда не удавалось заставить работать даже самый простой тест. Весь текст, касающийся этого, относится к JDK1.4 и статье о настройке это на веб-сайте O'Reilly предназначено для JDK1.2. Это позволило бы мне использовать батик.

Поэтому я присмотрелся и увидел загадочные ссылки на использование PHP:GD. конвертировать SVG в JPEG. Похоже, что GD может загружать и сохранять JPEG, PNG, GIF и т. д., но не SVG напрямую. GD, кажется, использует формат векторной графики, но не совсем уверен, совместим ли он с SVG (я новичок в обоих).

Я нашел модуль Perl GD::SVG, но явно требует Perl - и учитывая проблемы, которые у меня были с PHP‹-> Java, я не хочу идти по этому пути.

Я также нашел сайт (который сейчас не могу найти), на котором обсуждалась скорость различных преобразований SVG с помощью rsvg, Cairo и парочки других. Говоря о приложениях, преобразующих SVG в JPEG, люди также обсуждают ImageMagick. Хотя это может работать на Linux-сервере, я делаю 99% своей разработки в Windows, поэтому предпочитаю чисто PHP-решение и не борюсь с различиями между приложениями на разных платформах.

Сейчас я рассматриваю возможность написания конвертера SVG->GD. Последний вариант — использовать SVG в браузере через Raphael. Я бы предпочел конвертировать в JPEG на сервере и нормально обслуживать изображение.

Кто-нибудь использовал SVG->GD, знает какие-либо конвертеры для ОС (но не GPL) или у него есть идеи получше?


person graham.reeds    schedule 24.07.2009    source источник


Ответы (2)


Он не поддерживается, и я не могу за это поручиться, но вы не упомянули этот вариант. Похоже на то, что вы пытались сделать с Батиком.

http://pear.php.net/package/XML_svg2image/

Не знаю, поможет это или нет.

person easement    schedule 24.07.2009
comment
Это то, что я пытался сделать с батиком. - person graham.reeds; 25.07.2009

Наконец мне удалось исправить это, фактически загрузив и установив 1.4 JDK из архива Sun. Работал без проблем. Что-то должно было измениться между 1.4 и 1.6.14, но я рад, что у меня все заработало.

Также, исследуя сообщение в блоге на эту тему, я наткнулся на Image_Canvas, который может быть лучшим вариантом (т.е. он написан на PHP).

person graham.reeds    schedule 27.07.2009