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

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

от dan_farrell , в категории: PHP , 8 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от ransom_homenick , 8 месяцев назад

@dan_farrell 

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


Для этого вам нужно загрузить изображение в память, получить его ширину и высоту, а затем проходить по всем пикселям и устанавливать их прозрачность, если они соответствуют определенному цвету (например, белый).


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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

$input_file = "input.jpg";
$output_file = "output.png";

// Загружаем изображение
$image = imagecreatefromjpeg($input_file);

// Получаем ширину и высоту
$width = imagesx($image);
$height = imagesy($image);

// Создаем новое изображение с прозрачным фоном
$output_image = imagecreatetruecolor($width, $height);
imagealphablending($output_image, false);
imagesavealpha($output_image, true);

// Проходим по всем пикселям
for ($x = 0; $x < $width; $x++) {
    for ($y = 0; $y < $height; $y++) {
        $rgb = imagecolorat($image, $x, $y);
        $r = ($rgb >> 16) & 0xFF;
        $g = ($rgb >> 8) & 0xFF;
        $b = $rgb & 0xFF;
        
        // Устанавливаем прозрачность для б