У меня есть пакет файлов SVG со встроенными, изображениями PNG высокого разрешения. Файлы PNG были изменены значительно меньшие (через transform
, matrix
, и т.д.). Что лучший способ состоит в том, чтобы передискретизировать эти встроенные изображения на месте? Цель состоит в том, чтобы получить меньшие, быстрее загружающиеся файлы SVG.
Просто для уточнения некоторая терминология (добавленный акцент):
Передискретизация изменяет общее количество пикселей в изображении...
...
Когда Вы изменяете размер изображения и не передискретизируете его, Вы изменяете размер изображения, не изменяя объем данных...
Очевидно, я только изменяю размер изображений прямо сейчас.
Я играл с попыткой автоматизировать его использование ImageMagick, но хранение пропорций изображения не совсем тривиально. Существует ли простой взлом Inkscape? Или что-то еще я пропускаю?
Inkscape действительно на самом деле имеет передискретизировать опцию (это может быть часть ImageMagick). Эти опции доступны от Extensions -> Raster
меню.
Передискретизировать объекты в Вашем изображении:
Extensions -> Images -> Embed Images...
Extensions -> Raster -> Resample
Width
и Height
значения к самым низким допустимым значениямApply
и Close
Этот метод будет работать хорошо во время авторского процесса. Я все еще работаю над способом автоматизировать это и обновлю это сообщение, если я нахожу хороший метод.
Если ImageMagick не работал способ, которым Вам было нужно, испытайте GraphicsMagick (домашняя страница здесь). Да, это - ветвление ImageMagick, но я ударил в одном случае по голове против ImageMagick из-за не полностью и/или неправильно реализовываемой функции, только чтобы найти, что та же функция работала как очарование (и способом я нашел логичным и последовательным) в GraphicsMagick.
Да, это в неподтвержденной информации в направлении для испытания GraphicsMagick но это стоит того, чтобы попытаться, я думаю. (В целом я нахожу, что ImageMagick твердая часть программного обеспечения. Это - просто некоторые случаи, где GraphicsMagick более надежен, и таким образом я придерживаюсь его.)