Я использую этот код, чтобы сделать все белые пиксели прозрачными:
$img = imagecreatefromjpeg('test.jpg');
$remove = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $remove);
imagepng($img, 'bla.png');
Но я также хочу, чтобы некоторые «почти белые» пиксели были прозрачными, как 254, 255, 255
и т.д. Как я могу добавить это?
Если ваш вопрос заключается в том, как удалить смежные области с аналогичной цветовой гаммой; Должен сказать, что использовать PHP-библиотеку GD сложно. Вы должны взглянуть на ImageMagick которая является гораздо более мощной библиотекой обработки изображений и имеет Интеграция PHP.
Если вы решите использовать вместо этого ImageMagick, у вас будет доступ ко многим сторонним скриптам, которые выполняют потрясающую обработку изображений. Одним из которых является Фред Вайнхаус Волшебная палочка. Он делает то, что вы ищете.
Вы посеете это с x
а также y
координата, он может извлечь цвет этой координаты и сделать его прозрачным с настраиваемым порогом цветового различия (коэффициент размытия). Посмотрите, как он может соответствовать градиенту синего цвета:
Других решений пока нет …