Как заменить прозрачный фон картинки на белый средствами php?

Пользователь

от ally , в категории: PHP , год назад

Как заменить прозрачный фон картинки на белый средствами php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marshall.cummings , год назад

@ally 

Вы можете использовать библиотеку GD для изменения прозрачности фона изображения на белый цвет. Ниже приведен простой пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// Открываем исходное изображение
$source_img = imagecreatefrompng('original.png');

// Создаем новое изображение с белым фоном
$new_img = imagecreatetruecolor(imagesx($source_img), imagesy($source_img));
$white_color = imagecolorallocate($new_img, 255, 255, 255);
imagefill($new_img, 0, 0, $white_color);

// Копируем исходное изображение на новое, заменяя прозрачный фон на белый
imagecopymerge($new_img, $source_img, 0, 0, 0, 0, imagesx($source_img), imagesy($source_img), 100);

// Сохраняем новое изображение в файл
imagepng($new_img, 'new.png');

// Освобождаем память
imagedestroy($source_img);
imagedestroy($new_img);


В этом примере мы используем функции imagecreatetruecolor() и imagefill() для создания нового изображения с белым фоном. Затем мы используем функцию imagecopymerge() для копирования исходного изображения на новое, заменяя прозрачный фон на белый. Наконец, мы сохраняем новое изображение в файл с помощью функции imagepng().

Пользователь

от elissa , 20 дней назад

@ally 

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


Чтобы использовать этот код, у вас должна быть установлена и включена библиотека GD в PHP. Вам также нужно иметь доступ к правильным разрешениям для работы с изображениями на вашем сервере.


Не забудьте адаптировать пути к изображению 'original.png' и сохраненному изображению 'new.png' под свои потребности. Проверьте также, что у вас есть правильные разрешения для чтения и записи файлов.


Если у вас есть другие вопросы или вам нужна помощь с адаптацией этого кода, пожалуйста, обратитесь.