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

C++Builder Discussion :

Couche alpha de TPngImage


Sujet :

C++Builder

  1. #1
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut Couche alpha de TPngImage
    Bonjour,

    Sous BCB6, je crée une image PNG avec la classe TPNGObjet de pngimage.hpp/pngimage.pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    TBitmap *bmp = new TBitmap();
    bmp->PixelFormat = pf24bit;  // j'ai essayé avec pf32bit, ça ne change rien
    bmp->Width=500;
    bmp->Height=400;
     
    // .... (remplissage de mon bitmap)
     
    TPNGObject *png = new TPNGObject();
    png->Assign(bmp);
    png->SaveToFile("test.png");
    delete png;
     
    delete bmp;
    et je souhaiterais attribuer à chaque pixel une valeur alpha différente, de transparence + ou moins prononcée (et non pas une couleur transparente unique pour l'ensemble de l'image).

    Comment puis-je faire ? J'ai lu sur le forum qu'en hexadécimal on pouvait définir la valeur de alpha, mais par exemple
    0x0000FF00 : me renvoie vert
    0x9900FF00 : me renvoie gris (et non vert transparent)
    0x0100FF00 : me renvoie vert
    0x0200FF00 : me renvoie noir


    Merci pour votre aide !

  2. #2
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Bon ben je pense avoir trouvé, voilà la solution pour appliquer une valeur alpha à chaque pixel de mon image :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    TBitmap *bmp = new TBitmap();
    bmp->PixelFormat = pf24bit;  // j'ai essayé avec pf32bit, ça ne change rien
    bmp->Width=500;
    bmp->Height=400;
     
    // .... (remplissage de mon bitmap)
     
    TPNGObject *png = new TPNGObject();
    png->Assign(bmp);
    png->CreateAlpha();   // à ne pas oublier !!!
    for(x=0;x<png->Width;x++)
       for(y=0;y<png->Height;y++)
          png->AlphanScanLine[y][x] = alpha_a_appliquer;
    png->SaveToFile("test.png");
    delete png;
     
    delete bmp;

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Salut, s'il te manque des infos tu peux toujours aller lire un article que j'avais écris sur le sujet: Changer l’alpha d’un PNG à l’exécution
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre régulier Avatar de benj63
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mai 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 207
    Points : 99
    Points
    99
    Par défaut
    Merci, je vais y jeter un oeil !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DELPHI 7] Icone avec couche alpha
    Par dav555 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 06/08/2005, 11h53
  2. comment manipuler la couche alpha d'un .png
    Par bilel dans le forum C++Builder
    Réponses: 1
    Dernier message: 18/07/2005, 14h40
  3. couche alpha avec directdraw
    Par pepedimancho dans le forum DirectX
    Réponses: 4
    Dernier message: 14/06/2005, 18h11
  4. Comment afficher un Bitmap contenant une couche alpha ?
    Par pwozniak dans le forum Composants VCL
    Réponses: 9
    Dernier message: 17/01/2005, 19h55
  5. Combiner plusieurs textures avec couches alpha
    Par TibobiT dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2004, 15h20

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