используйте php для создания изображения, фон всегда имеет неправильный цвет - PullRequest
3 голосов
/ 30 сентября 2011

Функция заключается в том, что когда пользователи загружают изображение, программа создает новое квадратное изображение на белом фоне и помещает изображение пользователя в центр этого изображения.

Но проблема в том, что я установил белый фон, он всегда показывает черный.

Код

$capture = imagecreatetruecolor($width, $height);
$rgb = explode(",", $this->background); 
$white = imagecolorallocate($capture, $rgb[0], $rgb[1], $rgb[2]); 
imagefill($capture, 0, 0, $white); 

и код, который контролирует цвет protected $background = "255,255,255";

Я пытался изменить $white = imagecolorallocate($capture, $rgb[0], $rgb[1], $rgb[2]); на $white = imagecolorallocate($capture, 255, 255, 255);. Но фон все еще показывает черным цветом.

Спасибо за любой ответ

Ответы [ 2 ]

3 голосов
/ 30 сентября 2011

Из руководства imagecreatetruecolor() returns an image identifier representing a black image of the specified size. Первый вызов imagecolorallocate устанавливает фон для изображений на основе палитры, но изображение с истинным цветом - нет.

Способ установки цвета фона для изображений с истинным цветом - просто заливкаэто со сплошным прямоугольником.

imagefilledrectangle($capture, 0, 0, $width, $height, $white);
0 голосов
/ 02 июня 2016

как насчет imagefill($im, x, y, $color)?

$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

Это заполнит все изображение красным цветом, а параметры x,y являются отправной точкой заливки прямоугольника.

...