PHP GD-изменение размера рамки/холста изображения, но не фактического изображения
У меня есть изображение с размером 88x31 и я хотел бы сделать его 100x100 без изменения размера фактического изображения, но только его холст/рамка, возможно, скопировав его в центре нового пустого белого изображения с размером 100x100. Есть идеи, как это сделать?
2 ответов
правильный метод-создать новое изображение, а затем скопировать старое изображение в его середину (предполагая, что начальное изображение является 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);