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++ Discussion :

Sauvegarder PNG avec CxImage


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut Sauvegarder PNG avec CxImage
    Bonjour, j'essayes de sauvergarder une image au format PNG en utilisant CxImage et jusqu'à présent tous mes tests ne se révèlent pas concluant : image non affichable...
    Je récupère dans mon application un buffer d'une image raw (32bit RGBA) et je créé mon image avec la méthode CreateFromArray.
    Ensuite je peux l'enregistrer sans problème en bmp ou jpg, mais lorsque j'essaye d'enregistrer en png : l'image n'est pas affichable...
    Quelqu'un pourrait il m'éclairer sur la marche à suivre?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par lefink Voir le message
    Bonjour, j'essayes de sauvergarder une image au format PNG en utilisant CxImage et jusqu'à présent tous mes tests ne se révèlent pas concluant : image non affichable...
    Je récupère dans mon application un buffer d'une image raw (32bit RGBA) et je créé mon image avec la méthode CreateFromArray.
    Ensuite je peux l'enregistrer sans problème en bmp ou jpg, mais lorsque j'essaye d'enregistrer en png : l'image n'est pas affichable...
    Quelqu'un pourrait il m'éclairer sur la marche à suivre?
    Avec une recherche vite fait sur google.
    as tu les lib png et zlib ??

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut
    Effectivement, j'ai les librairies png et zlib et je ne rencontre donc pas de problème pour générer l'image elle même. Le problème que je rencontre c'est que l'image générée semble être du png (je l'ai ouvert avert un éditeur pour consulter la signature) mais elle ne s'affiche pas sous ifranview... (à la place un écran noir)

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par lefink Voir le message
    Effectivement, j'ai les librairies png et zlib et je ne rencontre donc pas de problème pour générer l'image elle même. Le problème que je rencontre c'est que l'image générée semble être du png (je l'ai ouvert avert un éditeur pour consulter la signature) mais elle ne s'affiche pas sous ifranview... (à la place un écran noir)
    Je ne connait pas trop CxImage, mais peut tu donner un morceau de code

  5. #5
    Membre averti
    Profil pro
    E/C
    Inscrit en
    Février 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : E/C

    Informations forums :
    Inscription : Février 2006
    Messages : 31
    Par défaut
    Mefie toi de Irfanview, bien que ce soit un soft que j'adore et que j'utilise quotidiennement, il m'est arrivé qu'il ne reconnaisse pas certains fichiers png.

    Je ne me souviens plus des détails, mais il me semble que le format png autorise certaines "options", dont toutes ne sont pas peut être pas reconnues par Irfanview.

    Essaie d'ouvrir le fichier avec autre chose pour voir ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut
    Bonsoir,
    voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //buffer contient une capture d'écran 32bit RGBA
    bTransform = mim->CreateFromArray((BYTE*)buffer,width,height,32,nBitPerLine,true);		//mim->DecreaseBpp (8,false);
    if(bTransform)
     mim->Save("C:\\test.png",CXIMAGE_FORMAT_PNG  );
    Voici la doc. associé de cximage sur la fonction utilisée :
    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
    18
    19
    20
    21
    22
     
     bool CxImage::CreateFromArray  	(   	BYTE *   	 pArray,
    		DWORD  	dwWidth,
    		DWORD  	dwHeight,
    		DWORD  	dwBitsperpixel,
    		DWORD  	dwBytesperline,
    		bool  	bFlipImage
    	)  	[inherited]
     
     
    Creates an image from a generic buffer
     
    Parameters:
        	pArray: 	source memory buffer
        	dwWidth: 	image width
        	dwHeight: 	image height
        	dwBitsperpixel: 	can be 1,4,8,24,32
        	dwBytesperline: 	line alignment, in bytes, for a single row stored in pArray
        	bFlipImage: 	tune this parameter if the image is upsidedown
     
    Returns:
        true if everything is ok
    J'ai ouvert l'image via paint,photoshop,internet explorer et pareil : je n'ai qu'une image vide...
    Si je fais le test en sauvegardant une image bmp, ou jpeg, pas de problème..

    Avez-vous une idée?

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Es tu sur de la valeur de la couche alpha?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 15
    Par défaut
    A vrai dire non... Je ne sais pas comment m'en assurer.
    J'ai pour l'instant réussi à trouver une solution en encodant d'abord l'image dans un autre buffer en bmp avant de la sauvegarder en png, mais question perf. ça ne doit pas être l'idéal.

  9. #9
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par lefink Voir le message
    A vrai dire non... Je ne sais pas comment m'en assurer.
    J'ai pour l'instant réussi à trouver une solution en encodant d'abord l'image dans un autre buffer en bmp avant de la sauvegarder en png, mais question perf. ça ne doit pas être l'idéal.
    Tu met quel valeur a alpha???
    normalement c'est :
    0 transparent
    255 opaque

    ou l'inverse

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

Discussions similaires

  1. [D5] Zoom d'image PNG avec transparence
    Par Thierry Laborde dans le forum Delphi
    Réponses: 9
    Dernier message: 12/06/2006, 15h41
  2. Comment utiliser les fichiers *.PNG avec Delphi ?
    Par HopeLeaves dans le forum Composants VCL
    Réponses: 2
    Dernier message: 17/09/2005, 20h59
  3. Probleme Sauvegarde-Restauration avec MySql Administrator
    Par Christophe Charron dans le forum Administration
    Réponses: 7
    Dernier message: 26/07/2005, 08h25
  4. Réponses: 2
    Dernier message: 13/12/2004, 23h32
  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