• ? PHP help WTF imagemagick Жуйк, ты не сталкивался с нижеследующей фигнёй?
    Расширение ImageMagick для PHP когда я считываю свежесгенерированный SVG, у которого ясно задан размер 244x290, при сохранении его в PNG выдает 305x362?

    SVG объявляется так:
    <svg xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="full" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" viewBox="0 0 244 290" x="0" y="0" width="244" height="290">
    Код, по сути, практически такой, только еще обработка ошибок:
    $imageMagick = new Imagick();
    $imageMagick->readimageblob($svgData);
    $imageMagick->setImageFormat('png24');
    $imageMagick->writeImage($fileName);
    ♡ recommended by @stanis

Replies (10)

  • @skobkin-ru, На всякий случай:
    $ php -v
    PHP 5.5.7-pl0-gentoo (cli) (built: Dec 18 2013 21:16:16)
    Copyright (c) 1997-2013 The PHP Group
    Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
  • @skobkin-ru, никогда не думал что имагик может уметь svg.
    Для меня это открытие. Но учитывая, как остальные линуксовые штуки с ним обращаются... Я думаю, что лучше конвертировать через браузер.
  • @skobkin-ru, 1) В svg — это пункты. Если хочешь пиксели — кажэтся, px, но по-моему imagemagickу это можэт не помочь. Поскольку
    2) (вроде) (некоторые) рендэреры svg для imagemagick всё равно пересчитывают пиксели в пункты с невменяемым дефолтом, а только потом рендэрят с заданным im разрешэнием 90 dpi.
    В общем, если px не поможэт — ну, учти, что у im — 90/72.
  • @skobkin-ru, никакой из элементов за края не выходит? А то мож bbox поболее 244*290 показывает.
  • @NEKT, В PHP через браузер?
  • @az09, Не. Как выяснилось, это только на моем PHP. На сервере таймвеба такого нет, там 5.3.X. У еще одного человека, которого просил проверить — тоже на 5.5.3. А у меня на 5.5.7 на генте — есть.
  • @skobkin-ru, Скорее через какой-нибудь селениум, поскольку в браузерах, вроде как, достаточно адекватные парсеры для контента такого типа.
  • @NEKT, А ты не ищешь легких путей.
  • @skobkin-ru, Неважно как работает какая-либо хрень, если она дает стабильный результат.
  • @NEKT, Доооо...