Подтвердить что ты не робот

imagescreatetruecolor с белым фоном

Я уверен, что мне нужно использовать imagefilledrectangle, чтобы получить белый фон вместо черного на этом... просто не знаю, как это сделать. Я пробовал несколько способов.

$targetImage = imagecreatetruecolor($thumbw,$thumbh);
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbHeight,imagesx($sourceImage),imagesy($sourceImage));
4b9b3361

Ответ 1

Из руководства PHP для ввода изображений:

$image = imagecreatetruecolor(100, 100);

// set background to white
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);

Ответ 2

imagefill() использует заливку заливки, что довольно медленно по сравнению с просто окрашиванием цвета в прямоугольник без учета содержимого изображения. Так что imagefilledrectangle() будет намного быстрее.

// get size of target image
$width  = imagesx($targetImage);
$height = imagesy($targetImage);

// get the color white
$white  = imagecolorallocate($targetImage,255,255,255);

// fill entire image (quickly)
imagefilledrectangle($targetImage,0,0,$width-1,$height-1,$white);

Скорость часто возникает при написании кода.