Раскрашивание и замена цветов с помощью библиотеки изображений PHP GD?

StackOverflow https://stackoverflow.com/questions/717686

  •  23-08-2019
  •  | 
  •  

Вопрос

Здравствуйте, я пытаюсь раскрасить и поменять цвета изображения, используя библиотеку изображений GD с PHP.

Я использую оригинальное изображение, расположенное здесь:http://korlon.com/youknowbetter/test.jpg

И хотелось бы довести это до такой степени, что это будет оранжевое лицо с черной одеждой и волосами, очень похожее на то, что вы видите здесь: http://youknow Different.org/

До сих пор я использовал следующий код:

<?php
header('Content-type: image/jpeg');
$im = imagecreatefromjpeg('test.jpg');



imagefilter($im, IMG_FILTER_GRAYSCALE);
imagefilter($im, IMG_FILTER_CONTRAST, 255);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_COLORIZE, 252, 137, 36);


imagejpeg($im);
?>

Чтобы приблизиться к этому, но мне все еще не хватает возможности превратить все белые оттенки в черные.http://korlon.com/youknowbetter/filter.php

Я попробовал заменить белое на черное, как указано в этом вопросе здесь:Могу ли я поменять цвета в изображении, используя библиотеку GD в PHP?

Однако это, похоже, не работает.На самом деле цвета не меняют местами.Это потому, что я использую jpg, а не gif?Нужно ли что-то делать с цветовой палитрой?

Спасибо, любая помощь будет принята с благодарностью!

СТООБ

Это было полезно?

Решение

используйте синий (#0276DB) вместо оранжевого, а затем инвертируйте изображение (используя IMAGE_FILTER_NEGATE), чтобы получить оранжевый и черный.

Итак, ваш код будет:

<?php
header('Content-type: image/jpeg');
$im = imagecreatefromjpeg('test.jpg');



imagefilter($im, IMG_FILTER_GRAYSCALE);
imagefilter($im, IMG_FILTER_CONTRAST, 255);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_COLORIZE, 2, 118, 219);
imagefilter($im, IMG_FILTER_NEGATE);

imagejpeg($im);
?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top