Я уверен, что мне нужно использовать imagefilledrectangle, чтобы получить белый фон вместо черного на этом … просто не знаю, как это сделать. Я пробовал несколько способов.
$targetImage = imagecreatetruecolor($thumbw,$thumbh); imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbHeight,imagesx($sourceImage),imagesy($sourceImage));
Из руководства PHP для ввода изображений :
$image = imagecreatetruecolor(100, 100); // set background to white $white = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $white);
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);
Скорость часто возникает при написании кода.
$targetImage = imagecreatetruecolor($thumbw,$thumbh); // get the color white $color = imagecolorallocate($targetImage, 255, 255, 255); // fill entire image imagefill($targetImage, 0, 0, $color);
imagecolorallocate: http://www.php.net/manual/en/function.imagecolorallocate.php