PHP GD-изменение размера рамки/холста изображения, но не фактического изображения

У меня есть изображение с размером 88x31 и я хотел бы сделать его 100x100 без изменения размера фактического изображения, но только его холст/рамка, возможно, скопировав его в центре нового пустого белого изображения с размером 100x100. Есть идеи, как это сделать?

2 ответов


вы можете увидеть здесь: создание миниатюр с помощью PHP tutorial


правильный метод-создать новое изображение, а затем скопировать старое изображение в его середину (предполагая, что начальное изображение является JPEG и меньше 100x100):

$oldimage = imagecreatefromjpeg($filename);
$oldw = imagesx($oldimage);
$oldh = imagesy($oldimage);

$newimage = imagecreatetruecolor(100, 100); // Creates a black image

// Fill it with white (optional)
$white = imagecolorallocate($newimage, 255, 255, 255);
imagefill($newimage, 0, 0, $white);

imagecopy($newimage, $oldimage, (100-$oldw)/2, (100-$oldh)/2, 0, 0, $old, $oldh);