Я пытаюсь разбить большое изображение на более мелкие плитки. Я попробовал это с помощью PHP ImageMagick cropImage()
и смог успешно сделать это со следующим кодом.
for($w = 0; $w < ($large_image_width/$tile_width); $w++){
for($h = 0; $h < ($large_image_height/$tile_height); $h++){
$X = $w*$tile_width;
$Y = $h*$tile_height;
$image = new Imagick($input_file);
$image->cropImage($tile_width,$tile_height, $X,$Y);
$image->writeImage("X" . ($w+1) . "Y" . ($h+1) . ".jpg");
}
}
Но он перебирает каждый размер плитки и загружает изображение снова и снова.
Проведя дополнительные исследования, я нашел эту ссылку, который представляет собой одну строку с использованием командной строки.
convert -crop $WIDTHx$HEIGHT@ huge_file.png tile_%d.png
Мне интересно, есть ли у расширения PHP ImageMagick какая-либо функция, позволяющая делать то же самое. Также мне удобно переключаться на Perl или другую библиотеку, например GD.