Нарезаем изображение «кубиками» на PHP
Итак, задача: есть файл PNG, его нужно порезать на заданное количество «кубиков» — файлов (забегая вперед — например это нужно при создании своих карт при помощи API Яндекс-карт). В реализации этой задачи нам поможет библиотека GD, а точнее её функции
- imagecreatefrompng — создать изображение из файла
- getimagesize — дать информацию по размерам изображения из файла
- imagecreatetruecolor — создать изображение с заданными размерами
- imagecopy — скопировать часть изображения
- imagepng — сохранить изображение в файл
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function cuttingimg($fn,$sz){ $img=imagecreatefrompng("$fn); // получаем идентификатор загруженного изрбражения которое будем резать $info=getimagesize("$fn); // получаем в массив информацию об изображении $w=$info[0];$h=$info[0]; // ширина и высота исходного изображения $sx=round($w/$sz,0); // длинна куска изображения $sy=round($w/$sz,0); // высота куска изображения $px=0;$py=0; // координаты шага "реза" for ($y = 1; $y <= $sz; $y++) { for ($x = 1; $x <= $sz; $x++) { $imgcropped=imagecreatetruecolor($sx,$sy); imagecopy($imgcropped,$img,0,0,$px,$py,$sx,$sy); imagepng($imgcropped,"$y."-".$x."-".$fn); $px=$px+$sx; }; $px=0;$py=$py+$sy; }; }; |