Imagecolortransparent () для нескольких цветов

Я использую этот код, чтобы сделать все белые пиксели прозрачными:

$img = imagecreatefromjpeg('test.jpg');
$remove = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $remove);
imagepng($img, 'bla.png');

Но я также хочу, чтобы некоторые «почти белые» пиксели были прозрачными, как 254, 255, 255 и т.д. Как я могу добавить это?

0

Решение

Если ваш вопрос заключается в том, как удалить смежные области с аналогичной цветовой гаммой; Должен сказать, что использовать PHP-библиотеку GD сложно. Вы должны взглянуть на ImageMagick которая является гораздо более мощной библиотекой обработки изображений и имеет Интеграция PHP.

Если вы решите использовать вместо этого ImageMagick, у вас будет доступ ко многим сторонним скриптам, которые выполняют потрясающую обработку изображений. Одним из которых является Фред Вайнхаус Волшебная палочка. Он делает то, что вы ищете.

Вы посеете это с x а также y координата, он может извлечь цвет этой координаты и сделать его прозрачным с настраиваемым порогом цветового различия (коэффициент размытия). Посмотрите, как он может соответствовать градиенту синего цвета:

Волшебная палочка's magic

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]