Модуль 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
Ещё ссылки:
- https://itsfoss.com/install-imagemagick-ubuntu/
- https://askubuntu.com/questions/31435/how-to-install-librsvg2
- https://stackoverflow.com/questions/9853325/how-to-convert-a-svg-to-a-png-with-imagemagick
- https://linuxopsys.com/topics/install-latest-imagemagick-on-ubuntu-20-04 Здесь все нужные библиотека для Делигейтся Imagemagick. На всякий случай, ставил JPG, TIFF, XML (!обязательно, как оказалось) etc:
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