imagecopyresampled Cropping - PullRequest
       0

imagecopyresampled Cropping

0 голосов
/ 13 февраля 2012

Если у меня есть изображение 2048 x 2048, и мне нужно изображение 1488x1488 450 пикселей сверху вниз и 280 пикселей слева

это правильный код x.png это картинка 2048 x 2048:

<?php

$imagesrc_location = 'x.png';

// Get new sizes
list($srcwidth, $srcheight) = getimagesize($imagesrc_location);

$imagedst = imagecreatetruecolor(1488, 1488);
$imagesrc = imagecreatefrompng($imagesrc_location);

if (imagecopyresampled($imagedst,$imagesrc,0,0,280,450,1488,1488,2048,2048)) { 
    // Output image
    header('Content-type: image/png');
    imagepng($imagedst);
} else {
    echo "Could not resize file";

}

Вот изображение, показывающее, что я хочу, серая часть - это обрезанное изображение.

enter image description here

1 Ответ

1 голос
/ 13 февраля 2012

РЕДАКТИРОВАТЬ: Я думаю, проблема в том, что ваш исходный размер уменьшит imagecopyresampled. Это может работать для урожая:

imagecopyresampled($imagedst,$imagesrc,0,0,280,450,1488,1488,1488,1488)

Но посмотрите здесь: http://www.johnconde.net/blog/cropping-an-image-with-php-and-the-gd-library/ Я думаю, что вы хотите:

imagecopy($imagedst,$imagesrc,0,0,280,450,1488,1488)

http://us3.php.net/manual/en/function.imagecopy.php

http://us3.php.net/manual/en/function.imagecopyresampled.php

...