@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; // Устанавливаем прозрачность для б |
@dan_farrell
елых пикселей if ($r == 255 && $g == 255 && $b == 255) { imagesetpixel($output_image, $x, $y, imagecolorallocatealpha($output_image, 0, 0, 0, 127)); } else { imagesetpixel($output_image, $x, $y, $rgb); } } }
// Сохраняем изображение imagepng($output_image, $output_file);
// Очищаем память imagedestroy($image); imagedestroy($output_image);
?>
Приведенный выше код загружает изображение с белым фоном (input.jpg), проходит по всем пикселям и устанавливает прозрачность для белых пикселей, а затем сохраняет результат в новом файле (output.png).Вы можете заменить значения $input_file и $output_file на соответствующие значения для вашего случая использования.