Мне нужно было сделать это недавно. Я хотел сделать миниатюру ссылкой на график 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 строк пикселей необходимо удалить из верхней части масштабированного изображения.
Итак ...
Полученный HTML выглядит следующим образом:
Как вы можете видеть, я выбрал стиль, содержащий & lt; a & gt; тег, но вместо этого вы можете вместо этого стирать & lt; div & gt ;, [. g11]
. Один из артефактов этого подхода состоит в том, что если вы покажете границы, верхняя граница будет отсутствовать. Поскольку я использую border = 0, это не проблема для меня.
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
Вы можете увидеть, использует ли ImageMagick RSVG или MSVG / XML, просмотрев в конце строки для SVG с командой:
convert -list format