imagescreatetruecolor с белым фоном - PullRequest
14 голосов
/ 15 ноября 2011

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

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

Ответы [ 3 ]

34 голосов
/ 15 ноября 2011

Из PHP ручной записи для imagefill :

$image = imagecreatetruecolor(100, 100);

// set background to white
$white = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $white);
6 голосов
/ 15 сентября 2015

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);

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

3 голосов
/ 15 ноября 2011
$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

imagefill: http://php.net/manual/en/function.imagefill.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...