Распил картинки на квадратики
- function koecrushimage($imgfile, $sidepart=4) {
- $root = realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR;
- $dir = 'img';
- $crushdir = 'crush';
- if (!is_dir($root . $dir))
- mkdir($root . $dir, 0777, true);
- if (!is_dir($root . $dir . DIRECTORY_SEPARATOR . $crushdir))
- mkdir($root . $dir . DIRECTORY_SEPARATOR . $crushdir, 0777, true);
- $parts = pow($sidepart, 2);
- if (!is_dir($root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts))
- mkdir($root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts, 0777, true);
- $img = imagecreatefromjpeg($root . $dir . DIRECTORY_SEPARATOR . $imgfile);
- $x = imagesx($img);
- $y = imagesy($img);
- $newx = (intval($x/$sidepart))*$sidepart;
- $newy = (intval($y/$sidepart))*$sidepart;
- $newimg = imagecreatetruecolor($newx, $newy);
- imagefill($newimg, 0, 0, 0x000000);
- imagecopyresampled($newimg, $img, 0, 0, 0, 0, $x, $y, $newx, $newy);
- $picx = $newx/$sidepart;
- $picy = $newy/$sidepart;
- for ($i=0, $gorizontal=0; $i<$parts; $i++) {
- $newpic = imagecreatetruecolor($picx, $picy);
- imagefill($newpic, 0, 0, 0x000000);
- if ((($i%$sidepart)==0) && ($i!=0)) {
- $gorizontal++;
- }
- $vertical = ($i!=0) ? ($i%$sidepart) : $i;
- imagecopyresampled($newpic, $newimg, 0, 0, ($vertical*$picx), ($gorizontal*$picy), $picx, $picy, $picx, $picy);
- imagejpeg($newpic, $root . $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts . DIRECTORY_SEPARATOR . 'pic' . ($i+1) . '.jpg', 25);
- imagedestroy($newpic);
- }
- screen($parts, $dir . DIRECTORY_SEPARATOR . $crushdir . DIRECTORY_SEPARATOR . substr($imgfile, 0, -4) . DIRECTORY_SEPARATOR . $parts);
- }
- function screen($parts, $dir) {
- echo '<table><tr>' . PHP_EOL;
- for ($i=1;$i<=$parts;$i++) {
- echo '<td>' . PHP_EOL;
- echo '<img src="' . $dir . DIRECTORY_SEPARATOR . 'pic' . $i . '.jpg" alt="' . $i . '" />' . PHP_EOL;
- echo '</td>' . PHP_EOL;
- if (($i%(sqrt($parts))==0) && ($i!=0)){
- echo '</tr><tr>' . PHP_EOL;
- }
- }
- echo '</tr></table>' . PHP_EOL;
- }
- koecrushimage('test.jpg', 10);
рядом с файлом создать папку img, в нее положить файл картинки *.jpg
имя картинки передать в функцию, второй параметр не обязательный, пилит картинку на кучу квадратиков
имя картинки передать в функцию, второй параметр не обязательный, пилит картинку на кучу квадратиков