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

 Delphi Discussion :

Resize d'un PNG avec transparence


Sujet :

Delphi

  1. #61
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je m'en doutais, c'est normal que tu obtiennes ce genre de rendu. Laisse tomber.
    Je vais essayer de préparer une fonction de conversion comme expliquée plus haut, mais je ne garanti pas pouvoir le faire rapidement, le week-end fini et demain le taf... A+
    De retour parmis vous après 10 ans!!

  2. #62
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Pas de souci, c'est déjà bien que tu le fasses :-)
    Merci !

  3. #63
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut

    Voici le code qui te permettra de convertir ton PNG 8bits transparent et PNG 32bits.
    Sachant que la couleur transparente sera l'index 0 de la palette 8 bits :

    [EDIT] Une erreur s'est glissée. Je corrige
    De retour parmis vous après 10 ans!!

  4. #64
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Merci beaucoup sub0, tu es au top. Je vais tester ca dans la journée pour voir ce que ca donne et je te dis.
    Juste une question : est-ce qu'on peut resizer au niveau des bitmaps ou il faut le faire au niveau des PNG ? Car je n'ai pas trouvé pour le moment de fonction de resize PNG, uniquement du bitmap.
    Merci !

  5. #65
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Bonjour,

    Petite info au passage, Eric Sibert propose un codage PNG qui transforme l'image d'origine de 51Ko en une image de 9Ko !

    son code fonction en CLX (QT) c'est QT qui charge le PNG dans un Bitmap 32 bits, puis le code d'Eric réenregistre l'image en PNG 8bits avec canal alpha
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #66
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Merci pour cette info, je regarderai un peu mais il me manque QT
    J'attends de voir le code de sub0 déjà, je pense que ca devrait me suffir (enfin j'espère )

  7. #67
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Bonjour.

    Je pensais qu'il y avait qu'une seule couleur transparente, mais je crois que c'est Paul TOTH qui a raison : En fait, il s'agit d'une palette de 256 couleurs RGBA.

    C'est la 1ère fois que je souhaite convertir ce format; L'objectif sera de récupérer les composantes RGB et Alpha de chaque couleur de cette palette (dans le header du PNG). L'unité PngImage dispose plus ou moins de cette fonctionnalité. Je vais essayer de comprendre comment cela marche et développer une méthode de conversion "COLOR_PALETTE vers COLOR_RGB" pour l'unité PngImage...
    De retour parmis vous après 10 ans!!

  8. #68
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Ok merci pour l'info.
    Tu penses que c'est jouable ou que ca va être dur à faire ?

  9. #69
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    C'est jouable mais surement un peu difficile à mettre au point. J'en suis au stade de la recherche... des fois que je tombe sur un code se rapprochant de ce que je souhaite faire...
    De retour parmis vous après 10 ans!!

  10. #70
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Ok merci j'espère que tu vas pouvoir trouver ce que tu souhaites

  11. #71
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Sub0 Voir le message
    C'est jouable mais surement un peu difficile à mettre au point. J'en suis au stade de la recherche... des fois que je tombe sur un code se rapprochant de ce que je souhaite faire...
    Le code d'Eric comprend toute la partie sauvegarde d'un Bitmap 32 bit en PNG en pur Pascal, QT n'est utilisé que pour la lecture...je suppose qu'il y a tout ce qu'il faut pour comprendre comme ça fonctionne.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  12. #72
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    1 ère étape OK!

    -> Obtenir la composante alpha de chaque couleur de la palette et recréer le masque alpha de l'image :

    Nom : Alpha_0001.png
Affichages : 116
Taille : 6,1 Ko

    -> La 2ème étape sera de fusionner ce masque à l'image opaque afin d'obtenir un PNG 32bits RGBA...

    [EDIT] Paul, je viens de voir ton message. Du coups, je sais plus trop si je termine ce que j'ai commencé
    De retour parmis vous après 10 ans!!

  13. #73
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Merci ca avance vite
    Moi je suis pour que tu continues

  14. #74
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ok. Donc voici l'image fusionnée.
    -> Le rendu suivant te convient-il ?
    -> Arrives-tu à utiliser cette image pour ton redimensionnement ?

    Nom : Output_0001.png
Affichages : 205
Taille : 10,1 Ko
    De retour parmis vous après 10 ans!!

  15. #75
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Le rendu est très bon oui, par contre c'est normal que les couleurs soient plus claires sur la nouvelle image ?

    Pour utiliser l'image, est-ce que tu passes par un bitmap temporaire que l'on pourrait redimensionner ou pas du tout ?

    Sinon il faudrait que je transforme l'image via ta fonction puis que je la transforme en bitmap32 pour la redimensionner ?

  16. #76
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Avant de poursuivre dans cette piste, il faut vérifier que ce format est bien compatible avec la méthode de redimensionnement que tu as choisi. Et en effet, il possible d'intégrer directement le redimensionnement dans la procédure de conversion... Mais avant tout, il faut me dire si le format convient ou pas. Ensuite, effectivement, ce n'est pas normale que l'image soit plus claire. Elle devrait apparaître exactement comme l'image originale... Je regarde et corrige ce problème de clarté. A+
    De retour parmis vous après 10 ans!!

  17. #77
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Alors je n'ai pas encore testé le redimensionnement mais déjà le fichier que tu m'as envoyé (en dehors de l'histoire de clarté) semble exploitable.
    Pour le resize je vais tenter de le faire avec un bitmap32 ou quelque chose où je puisse faire un draw, car il faudra que je fasse une duplication de l'image avant son resize :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ImageFinale.Draw(0,0,PNGSource);
    ImageFinale.Draw(x,0,PNGSource);
    StretchDraw(Width/2,Height/2,PNGSource);
    Ou quelque chose dans ce genre.

  18. #78
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    J'ai un peu essayé avec ton image, la bibliothèque GR32_PNG l'ouvre et l'enregistre parfaitement en passant par un Bitmap32 entre les 2.
    Par contre, impossible de resizer correctement, je perds en nombre de couleurs lorsque je fais un resize et je ne peux pas non plus faire un Draw sans perdre de couleurs.
    Si ta fonction passe par un bitmap, je pense qu'il serait plus simple de faire les manipulations à ce moment là (resize et duplication des images).

  19. #79
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    Le code d'Eric comprend toute la partie sauvegarde d'un Bitmap 32 bit en PNG en pur Pascal, QT n'est utilisé que pour la lecture...je suppose qu'il y a tout ce qu'il faut pour comprendre comme ça fonctionne.
    Après avoir essayé pas mal de choses, je me rend compte que finalement c'est de cette façon que nous obtiendrons un PNG au bon format... Patience donc.
    De retour parmis vous après 10 ans!!

  20. #80
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2014
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mars 2014
    Messages : 143
    Points : 60
    Points
    60
    Par défaut
    Pas de problème j'ai tout mon temps ;-)

Discussions similaires

  1. [GD] Miniature en cache d'image PNG avec transparence
    Par a.brioit dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 27/01/2012, 23h42
  2. PNG avec transparence entre IE7 et FireFox2
    Par Daikyo dans le forum Mise en page CSS
    Réponses: 18
    Dernier message: 27/02/2008, 16h38
  3. Image PNG avec transparence
    Par BlackStorm dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/09/2007, 15h00
  4. [D5] Zoom d'image PNG avec transparence
    Par Thierry Laborde dans le forum Delphi
    Réponses: 9
    Dernier message: 12/06/2006, 15h41
  5. Traitements d'image sur PNG avec transparence
    Par Ingham dans le forum Langage
    Réponses: 16
    Dernier message: 02/08/2004, 16h42

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