2017-02-12 7 views
1

я получаю #AARRGGBB цвет отПреобразование ARGB в RGB и получить тот же самый цвет

int getColor=bitmap.getPixel() 

(Bitmap является ARGB_8888)

В качестве примера, значение GetColor является: # 20000000 (светло-серый) мне нужно получить тот же цвет в #RRGGBB, что-то вроде #BDBDBD (светло-серый).

Как это сделать?

+1

# 20000000 черный, не светло-серый. Он может стать светло-серым, если он нарисован поверх белого, так как он полупрозрачный. Это то, что вы хотите? Получите результат цвета, нарисованного поверх белого? –

+0

О, я знаю, что это черный цвет # 000000. Но есть ли способ получить точно цвет (цвет, который я вижу) в #rrggbb, без альфы, или его нереальный? – Lokie

+0

Зависит от того, что вы подразумеваете под тем, что видите. Как я уже сказал, если на вершине белого вы видите одно. На черном вы видите черный. Сам по себе он всегда черный. Если вы хотите на вершине белого цвета, тогда просто смешайте его с белым на основе альфы. –

ответ

0

Если вы хотите, чтобы цвет, который появлялся при размещении этого цвета поверх белого, вы должны смешать его. Поскольку альфа составляет 0x20, вы умножаете этот цвет на 0x20 и белый на 0xff-0x20 и добавьте их.

Конечно, сделайте это отдельно для R, G и B.

+0

Большое спасибо. – Lokie

+0

Сами, мне очень жаль беспокоить вас, но вы можете написать пример. Может быть, public void colorOnTopOfWhite (String argbHex) или такие как. Я изучаю java недавно, поэтому мне нужна помощь. Еще раз извините. – Lokie

+0

Извините, что String не является void – Lokie

0

Посмотрите здесь: how to change the color of certain pixels in bitmap android

В вашем случае это будет

for (int i=0; i<myBitmap.getWidth()*5; i++) 
     pixels[i] = 0xFFBDBDBD; 

32 разрядное целое число начинается с 0xFF = 255 для значения альфа, чтобы обеспечить 100% непрозрачности.

 Смежные вопросы

  • Нет связанных вопросов^_^