Android обесцвечивает определенный цвет

Я делаю какой-то фильтр изображений, и мне нужно обесцветить (удалить насыщенность) для определенного цвета. Например красный. Я хочу, чтобы мое изображение заменило все красные цвета на серый.
Изменить это изображение введите описание изображения здесь

К этому введите описание изображения здесь

Любая идея?

2 ответа

Я думаю, что вы можете использовать ИЛИ логин, чтобы добавить "фильтр" в ваш цвет RGB или ARGB

int filter = 0x00CC0000 | color;
myView.setBackgroundColor(filter);

Там говорят, http://developer.android.com/reference/android/graphics/ColorMatrixColorFilter.html что ColorMatrixColorFilter может использоваться для изменения насыщенности пикселя. Но вы должны играть с математикой и ColorMatrix

Это то, что вы исследуете?

Редактировать: нет такой вещи в стандартной библиотеке Android. Фильтры написаны в NDK для снижения производительности, поэтому вам нужно сделать то же самое для пользовательского фильтра.

Еще одна идея, не задумываясь о производительности: перебрать все пиксели и обесцветить, когда он "красный"

Другие вопросы по тегам