2017-09-13 7 views
0

J'ai une image .png que je peux charger dans mon application. C'est une forme qui est colorée dans une couleur spécifique, de sorte que chaque pixel a exactement la même valeur RVB. La seule différence est la valeur alpha, qui diminue aux bords de la forme.Android change la couleur des pixels lors du décodage d'une image

Mon problème est, que si je charge l'image avec BitmapFactory.decodeResource() les pixels sur le bord obtiennent une autre valeur RVB. Ce n'est pas un gros changement, c'est juste - + 4 valeurs rouge/vert/bleu, mais pour moi c'est un gros changement, car les pixels doivent être cette couleur exacte.

Je veux les masquer et les remplacer par une autre couleur. Cette couleur spécifique est mon indicateur, de sorte que je trouve les pixels que je veux changer. Si je change de couleur, le bord est toujours coloré différemment et c'est agaçant.

Existe-t-il un moyen de charger les tirages sans les changer?

Répondre

0

Vous devriez essayer d'utiliser cette variante:

decodeResource(Resources res, int id, BitmapFactory.Options opts) 

avec opts configurés. Jouer avec ses params inPreferredColorSpace, outColorSpace et inPreferredConfig, outConfig

+0

Désolé, mais cela ne change rien. De plus, inPreferredColorSpace a une API trop élevée. –