не получается убрать альфа канал

260
19 декабря 2016, 19:39

Есть на сервере изображение с прозрачным фоном, надо сделать так, чтобы фон стал белым, пытаюсь так:

$url = dirname(__FILE__).'/files/number.png';
$im = imagecreatefrompng($url);
$im = ImageColorAllocateAlpha($im, 255, 255, 255, 0);
imagepng($im, $url, 0);

но не получается

Answer 1

Как правильно предложил @Naumov, можно создать картинку размера исходной, заполнить цветом фона и наложить поверх изображение с прозрачностью:

<?php
$input_file = "test.png";
$output_file = "test.jpg";
$input = imagecreatefrompng($input_file);
list($width, $height) = getimagesize($input_file);
$output = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($output,  255, 255, 255);
imagefilledrectangle($output, 0, 0, $width, $height, $white);
imagecopy($output, $input, 0, 0, 0, 0, $width, $height);
imagejpeg($output, $output_file);

via

READ ALSO
Защита админ панели

Защита админ панели

Пишу проект с админ панелью на Laravel 52

262
Заменить все теги на p

Заменить все теги на p

Имеется HTML-разметка в текстовой переменнойКак можно заменить все теги в этой разметке на тег p? Есть ли стандартные функции PHP для этого? strip_tags()...

196
Как правильно вызвать функцию в php 2 раза?

Как правильно вызвать функцию в php 2 раза?

Код ресайзит(resize) картинки и сохранят в папкуНужно вызвать функцию ресайза, но как-то красиво, чтоб не дублировать код

198