Функция setSize () предназначена только для необработанных форматов изображений, но не для SVG. Вам нужно использовать scaleImage () вместо ...
$image = new Imagick();
$image->setBackgroundColor(new ImagickPixel('green'));
$image->readImage('./some/path/image.svg');
$image->scaleImage(20,20);
Между прочим, это будет работать нормально, если вы уменьшаете размер SVG-изображения до меньшего размера (как в данном случае), поскольку для любого, кто его масштабирует, вам нужно сделать еще одну вещь. Если вы просто измените размер, как указано выше, он будет выглядеть неровным и пиксельным. В этом случае вам нужно использовать setResolution () для увеличения разрешения следующим образом:
$image = new Imagick();
$image->setResolution(2000,2000);
$image->setBackgroundColor(new ImagickPixel('green'));
$image->readImage('./some/path/image.svg');
$image->scaleImage(1000,1000);
Фактические значения для setResolution () должны быть вычислены как 72 * (final_size / original_size) (ну, я думаю, что это правильная формула в любом случае). Но любое значение, которое по крайней мере это значение или выше, также будет работать нормально.