Imagick SVG в PNG всегда конвертирует с одним и тем же шрифтом

Мне нужно было сделать это недавно. Я хотел сделать миниатюру ссылкой на график NOAA. Поскольку их график может измениться в любое время, я хотел бы, чтобы мой эскиз изменился вместе с ним. Но есть проблема с их графиком: у него огромная белая граница наверху, поэтому, если вы просто масштабируете ее, чтобы сделать эскиз, вы получите посторонние пробелы в документе.

Вот как я его решил :

http://sealevel.info/example_css_scale_and_crop.html

Сначала мне нужно было сделать немного арифметики. Исходное изображение NOAA составляет 960 × 720 пикселей, но верхние семьдесят пикселей являются лишней белой границей. Мне понадобился эскиз 348 × 172 без дополнительной границы области вверху. Это означает, что желаемая часть исходного изображения составляет 720 - 70 = максимум 650 пикселей. Мне нужно было масштабировать до 172 пикселей, т. Е. 172/650 = 26,5%. Это означало, что 26,5% из 70 = 19 строк пикселей необходимо удалить из верхней части масштабированного изображения.

Итак ...

  1. Установите высоту = 172 + 19 = 191 пикселей: height = 191
  2. Установите нижнее поле на -19 пикселей (сокращение изображения до 172 пикселей): margin-bottom: -19px
  3. Установите верхнюю позицию для - 19 пикселей (смещение изображения вверх, так что верхние 19 строк столбцов переполнены и скрыты вместо нижних): top: -19px

Полученный HTML выглядит следующим образом:



Как вы можете видеть, я выбрал стиль, содержащий & lt; a & gt; тег, но вместо этого вы можете вместо этого стирать & lt; div & gt ;, [. g11]

. Один из артефактов этого подхода состоит в том, что если вы покажете границы, верхняя граница будет отсутствовать. Поскольку я использую border = 0, это не проблема для меня.

0
задан Sònia 24 February 2019 в 11:03
поделиться

1 ответ

ImageMagick может использовать один из 3 средств визуализации SVG: Inkscape, делегат RSVG и собственный внутренний MSVG / XML. Лучше всего Inkscape. Это только нужно установить, и ImageMagick будет использовать его. RSVG - это делегат, который должен быть установлен с ImageMagick. Я проверил ваш файл SVG со всеми 3 на IM 6.9.10.28 Q16 Mac OSX, и только Inkscape выдает вывод, хотя я не знаю, правильно ли это. Другие дали сообщения об ошибках. Вот мой результат при использовании ImageMagick с Inkscape.

convert test.svg test.png


enter image description here

Вы можете увидеть, использует ли ImageMagick RSVG или MSVG / XML, просмотрев в конце строки для SVG с командой:

convert -list format
0
ответ дан fmw42 24 February 2019 в 11:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: