IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

[canvas] Bitmap transformer une couleur en transparent


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut [canvas] Bitmap transformer une couleur en transparent
    Bonjour

    j'ai une image avec un fond uni d'une certaine couleur, je voudrai que lors de l'affichage supprimer le fond de mon image afin de laisser visible l'arrière plan de ma vue.

    Quelle est la démarche a suivre?

    actuellement mon code est le suivant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bbmd1);
    canvas.drawBitmap(bitmap, 30, 30, null);
    Merci

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Salut,
    Sur quoi est basé ton image de fond ?


    Si c'est une image view il te suffit de la rendre invisible via la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ImageView iv = (ImageView) findViewbyId(tonimage);
    iv.SetVisibility(View.GONE);
    Sinon il te suffit d'enlever le background de ton Layout correspondant.

  3. #3
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Je pense que ce que Arcantos512 veut dire, c'est que sur son image, il a par exmple un fond bleu.
    Et il aimerait que le bleu disparaisse de l'image pour devenir transparente.
    C'est bien ça ?
    Si oui, as tu regardé un peu du coté de "setColorFilter" ? Peut être que tu pourrais faire quelques choses avec ça...

  4. #4
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut
    @ MrDuChnok
    C'est exactement ça (enfin sur mon image c'est vert)



    j'avais regarder "setColorFilter", mais j'ai pas trouvé le bon Mode pour supprimer cette couleur de fond.

    un filtre comme celui la serait plus simple;
    [(Sc == Dc)?0:1, Dc ]

    apres il faudrait tester avec un ColorMatrixColorFilter, mais la matrix me fais peur;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Paint paint = new Paint();
    paint.setColorFilter(new PorterDuffColorFilter (Color.rgb(0, 255, 0), Mode.SRC_OUT));
     
    canvas.drawBitmap(bitmap, 0,0, paint);
    je pense que je vais modifier mon image, ca sera plus simple, mais bon j'aimerai bien connaitre la solution.

  5. #5
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Désolé , j'avais hésité avec le filtre.

    Sinon avec ColorMatrixColorFilter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Class Overview
     
    5x4 matrix for transforming the color+alpha components of a Bitmap. The matrix is stored in a single array, and its treated as follows: [ a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t ] When applied to a color [r, g, b, a], the resulting color is computed as (after clamping) R' = a*R + b*G + c*B + d*A + e; G' = f*R + g*G + h*B + i*A + j; B' = k*R + l*G + m*B + n*A + o; A' = p*R + q*G + r*B + s*A + t;
    Si on prends le vert a filtrer on obtiendrait
    1,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0

    Bon courage,

Discussions similaires

  1. "Merger" deux images avec une couleur de transparence
    Par MaelstroeM dans le forum VB.NET
    Réponses: 7
    Dernier message: 14/09/2007, 09h34
  2. [GD] Transformer une couleur en une autre
    Par Samuel2202 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/07/2007, 10h06
  3. Réponses: 7
    Dernier message: 04/06/2006, 12h24
  4. Créer un wallpaper bitmap avec une seule couleur
    Par Tenguryu dans le forum C++Builder
    Réponses: 1
    Dernier message: 31/03/2006, 15h43
  5. Réponses: 1
    Dernier message: 23/02/2003, 06h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo