17

Модуль ImageMagick 4.0.0 - Конвертация SVG в PNG без фона

В файле src/ImagemagickExecManager.php заменить функцию конвертации на это:

  /**
   * Builds a convert command for Imagemagick.
   *
   * ImageMagick syntax: convert input [arguments] output.
   *
   * @param \Drupal\imagemagick\ImagemagickExecArguments $arguments
   *   An ImageMagick execution arguments object.
   * @param string $sourcePath
   *   The source image file path.
   * @param string $destinationPath
   *   The destination image file path.
   *
   * @return string
   *   The command to be executed.
   *
   * @see http://www.imagemagick.org/Usage/basics/#cmdline
   */
  private function buildImagemagickConvertCommand(ImagemagickExecArguments $arguments, string $sourcePath, string $destinationPath): string {
    $cmdline = '-background none ';
    if (($pre = $arguments->toString(ArgumentMode::PreSource)) !== '') {
      $cmdline .= $pre . ' ';
    }
    $cmdline .= $sourcePath . ' ' . $arguments->toString(ArgumentMode::PostSource) . ' ' . $destinationPath;
    return $cmdline;
  }

Другого способа не нашел. Все аргументы вроде -alpha, добавляемые в настройках модуля, не работают.. И экспериментально выяснил, что что команда convert -background none file.svg newfile.png и convert file.svg -background none newfile.png это две разные команды в случае с SVG и библиотекой rSVG

Установка библиотеки ImageMagick связана с некоторыми проблемами и добавлением дополнительных библиотек. Иначе Deligates будет пустым и изображения в принципе не будут загружаться. Информация, которая помогла:

https://linuxopsys.com/topics/install-latest-imagemagick-on-ubuntu-20-04 правильная установка ImageMagick, только нужно:

--with-rsvg=yes

Также обязательно и предварительно должна быть установлена библиотека rSVG: 

apt-get install librsvg2-bin

Нужная инфа: https://stackoverflow.com/questions/37598319/use-rsvg-as-default-delegate-imagemagick-ubuntu-16-04

Особенно полезно знать grep svg. По умолчанию ImageMagick не включает ни встроенную библиотеку, ни rSVG

Ещё ссылки:

sudo apt-get install autoconf automake autopoint autotools-dev build-essential chrpath \
cm-super-minimal debhelper dh-autoreconf dh-exec dh-strip-nondeterminism doxygen \
doxygen-latex dpkg-dev fonts-lmodern g++ g++-7 gcc gcc-7 gir1.2-harfbuzz-0.0 graphviz \
icu-devtools libann0 libasan4 libatomic1 libbz2-dev libc-dev-bin libc6-dev \
libcairo-script-interpreter2 libcairo2-dev libcdt5 libcgraph6 libcilkrts5 \
libclang1-6.0 libdjvulibre-dev libexif-dev libexpat1-dev libfftw3-bin libfftw3-dev \
libfftw3-long3 libfftw3-quad3 libfile-stripnondeterminism-perl libfontconfig1-dev \
libfreetype6-dev libgcc-7-dev libgdk-pixbuf2.0-dev libglib2.0-dev libglib2.0-dev-bin \
libgraphite2-dev libgts-0.7-5 libgvc6 libgvpr2 libharfbuzz-dev libharfbuzz-gobject0 \
libice-dev libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libilmbase-dev \
libitm1 libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblab-gamut1 \
liblcms2-dev liblqr-1-0-dev liblsan0 libltdl-dev liblzma-dev libmime-charset-perl \
libmpx2 libopenexr-dev libpango1.0-dev libpathplan4 libpcre16-3 libpcre3-dev \
libpcre32-3 libpcrecpp0v5 libperl-dev libpixman-1-dev libpng-dev libpotrace0 \
libptexenc1 libpthread-stubs0-dev libpython-stdlib libquadmath0 librsvg2-bin \
librsvg2-dev libsigsegv2 libsm-dev libsombok3 libstdc++-7-dev libsynctex1 \
libtexlua52 libtexluajit2 libtiff-dev libtiff5-dev libtiffxx5 libtool libtool-bin \
libtsan0 libubsan0 libunicode-linebreak-perl libwmf-dev libx11-dev libxau-dev \
libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdmcp-dev libxext-dev libxft-dev \
libxml2-dev libxml2-utils libxrender-dev libxt-dev libzzip-0-13 linux-libc-dev m4 \
make pkg-config pkg-kde-tools po-debconf preview-latex-style python python-minimal \
python2.7 python2.7-minimal python3-distutils python3-lib2to3 tex-common \
texlive-base texlive-binaries texlive-extra-utils texlive-font-utils \
texlive-fonts-recommended texlive-latex-base texlive-latex-extra \
texlive-latex-recommended texlive-pictures x11proto-core-dev x11proto-dev \
x11proto-xext-dev xorg-sgml-doctools xsltproc xtrans-dev zlib1g-dev

Ограниченный HTML

  • Допустимые HTML-теги: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
CAPTCHA