PHP заменить цвет в truecolorimage

Мне нужно найти цвет на изображении и заменить его, если он присутствует.

Все, что я могу найти, это информацию о замене в проиндексированном изображении.

Есть ли простой способ сделать это с изображением в истинном цвете?

Является ли более эффективным преобразовать изображение с истинным цветом в индексированное, а затем заменить цвет?

Спасибо,

отметка


person Mark    schedule 22.10.2009    source источник
comment
Как это webdeveloper.com/forum/showthread.php?t=178210 ?   -  person powtac    schedule 22.10.2009
comment
Я ответил на этот вопрос здесь: stackoverflow.com /вопросы/1548534/   -  person radio4fan    schedule 05.05.2014


Ответы (1)


Используйте imagetruecolortopalette для создания изображения палитры, затем вы можете использовать imagecolorexact, чтобы найти индекс нужного цвета, а затем вызвать imagecolorset, чтобы изменить его.

person Chris Newman    schedule 22.10.2009
comment
Проблема, с которой я столкнулся, заключается в том, что я создаю маску изображения ... под этим я подразумеваю квадрат, заполненный цветом «хроматического ключа», с вырезанной из него формой с прозрачными пикселями, а затем накладывая это на изображение. Наконец, он заменяет цвет «хроматический ключ» прозрачными пикселями. Причина, по которой я хочу заменить цвет, заключается в том, что я не хочу, чтобы изображение содержало цвет «хроматического ключа». Проблема с вашим решением заключается в том, что для его работы мне пришлось бы сделать его изображением палитры, заменить цвет, а затем снова сделать его изображением истинного цвета. - person Mark; 22.10.2009
comment
Так как насчет этого? : создайте копию своего изображения и преобразуйте его в изображение палитры. Используйте imagecolorexact, чтобы найти индекс совпадающего цвета. Используйте imagecolordeallocate, чтобы удалить все другие цвета из палитры. Затем вы можете изменить оставшийся цвет (хромакей) и попробовать покерную игру, используя новое изображение в качестве маски для наложения на исходную версию в истинном цвете. Я не проверял это, и я не уверен, каков результат, когда вы освобождаете все цвета, кроме одного, вам придется немного пососать и посмотреть, но я думаю, что у этого подхода могут быть ноги, если вы хотите избежать преобразования изображения. - person Chris Newman; 22.10.2009