PHP GD масштабное изображение

1

Я пытаюсь поиграть с GD, и я пытаюсь заставить его работать с большими изображениями. Я хочу изображение, изначально 640x640, для изменения размера до 130x130 на моем изображении, которое я создаю в GD. Тем не менее, с моим кодом он просто посещает 130x130 изображения из верхнего левого угла. Другими словами, я не получаю весь образ в 130x130. Я пробовал каждый фрагмент, который мог найти, но до сих пор не повезло в этом. Это код, который у меня есть;

header ("Content-type: image/jpeg"); 

$image1Url = "background.jpg"; 
$image2Url = "image.jpg"; 
$image1 = imageCreateFromjpeg($image1Url); 
$image2 = imageCreateFromjpeg($image2Url);

imagecopymerge($image1, $image2, 10, 10, 0, 0, 130, 130, 100); 

$line1 = "This is the first line";
$line2 = "This is the second line";
$font = "./VERDANA.TTF";
$white = imagecolorallocate($image1, 255, 255, 255);
$yellow = imagecolorallocate($image1, 252, 205, 5);

imagefttext($image1, 14, 0, 150, 110, $yellow, $font, $line1);
imagefttext($image1, 14, 0, 150, 135, $white, $font, $line2);
Imagejpeg ($image1, NULL, 100); 

ImageDestroy ($image1);
ImageDestroy ($image2);

Я хочу, чтобы изображение было указано как $ image2Url, которое должно быть уменьшено до 130x130 независимо от того, какой размер он изначально был. Для меня важно, чтобы я поддерживал соотношение сторон.

Я пробовал разные фрагменты, которые я мог найти, но все равно не повезло... Я смог изменить размер исходного изображения до размера, который я хочу, но не в конечном изображении в моем сценарии GD.

Теги:
resize
gd
aspect-ratio

1 ответ

1
Лучший ответ

Если вы используете PHP версию> = 5.5, вы должны использовать imagescale(). Если нет, используйте следующие права после загрузки $image2:

$image3 = imagecreatetruecolor(130,130);
list($image2w, $image2h) = getimagesize($image2Url);
imagecopyresampled($image3, $image2, 0, 0, 0, 0, 130, 130, $image2w, $image2h);

// then use $image3 instead of $image2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню