2012-02-12 4 views
0

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

это правильный код x.png является 2048 х 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

EDIT: Я думаю, что проблема есть, ваш размер источника сделает его масштаб в 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

+0

Это не работает для меня , Я даю это: http://i.min.us/ibvzyAeW9415uv.png, и он приходит к следующему: http://i.min.us/ibyi5KbfTglN2P.png – ParoX

+0

Попробуйте этот новый код, который я опубликовал и дайте мне знать – Matt

+0

Как ни странно, 'imagecopyresampled ($ imagedst, $ imagesrc, 0,0,280,450,1488,1488,1488,1488)' и 'imagecopyresampled ($ imagedst, $ imagesrc, 0,0,280,450,2048,2048,2048,2048)' оба работают. Я никогда не пойму эту функцию полностью. – ParoX