Я не уверен, что декодирование в байтовый массив - лучший способ сделать это на Android, но я могу предложить то, что я знаю об обработке изображений в целом.
Если вы используете RGB_565
, это означает, что каждый пиксель составляет 16 бит или два из этих байтов. Первые 5 битов - красные, следующие 6 - зеленые, а последние 5 - синие. Иметь дело с этим волосат на Яве. Я предлагаю вам работать с более простым форматом, таким как ARGB_8888
, что будет означать, что у вас 32 бита или четыре байта на пиксель, и каждый байт имеет свое значение (альфа, красный, зеленый, синий).
Чтобы проверить, попробуйте установить каждый четвертый байт, например [3]
, [7]
, [11]
и т. Д., Равным 0. Это должно привести к удалению всего определенного канала, в данном случае, синего.
[2]
, [6]
, [10]
и т. Д. Будут всеми зелеными значениями для каждого пикселя.
(Обратите внимание, что четыре компонента могут идти в обратном порядке, потому что я не уверен в порядке байтов! Поэтому я мог бы просто рассказать вам, как вынуть альфу, а не синий ...)