Разрезать 1 большое изображение на маленькие изображения одного размера - PullRequest
1 голос
/ 11 июля 2011

Учитывая изображение в формате JPG, обрежьте его в горизонтальном направлении, чтобы размер spic был около 100K

Любые советы?

1 Ответ

0 голосов
/ 11 июля 2011

Использовал эту функцию в прошлом хорошо работает для меня ...

Это займет входной файл и создаст плитки указанного размера ...

function makeTiles($name, $imageFileName, $crop_width, $crop_height)
{
    $dir = "source dir";
    $slicesDir = "target dir";

    // might be good to check if $slicesDir exists etc if not create it.

    $inputFile = $dir . $imageFileName;

    $img = new Imagick($inputFile);
    $imgHeight = $img->getImageHeight();
    $imgWidth = $img->getImageWidth();

        $cropWidthTimes = ceil($imgWidth/$crop_width);
    $cropHeightTimes = ceil($imgHeight/$crop_height);
    for($i = 0; $i < $cropWidthTimes; $i++)
    {
        for($j = 0; $j < $cropHeightTimes; $j++)
        {
            $img = new Imagick($inputFile);
            $x = ($i * $crop_width);
            $y = ($j * $crop_height);
            $img->cropImage($crop_width, $crop_height, $x, $y);
            $data = $img->getImageBlob();
            $newFileName = $slicesDir . $name . "_" . $x . "_" . $y . ".jpg";
            $result = file_put_contents ($newFileName, $data);
        }
    }
}
...