Format Png [Résolu]

Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
- - Dernière réponse : cincap
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
- 8 oct. 2007 à 11:59
Bonjour à toutes et à tous,

J'aimerai pouvoir charger une image en Png, mon code permet de charger un Jpg et Bmp mais par contre pour un Png, l'image reste vide.

J'utilise la librairie et la sauvegarde se fait bien pour les 3 formats.

Voici mon code :

procedure TMainForm.BchargerClick(Sender: TObject);
var 

    JPG : TJPegImage;
    BMP : TBitmap;
    Ext : string;
    BMPLoaded : boolean;
    NewH, NewW, OldSBM : integer;

begin
 
{ initialisation }
  BMPLoaded := false;


  { ouverture d'une image }
  if Opd1.Execute

then
  begin

    { recuperation de l'extention }
    Ext := LowerCase(ExtractFileExt(Opd1.FileName));


    { creation du bitmap temporaire }
    BMP := TBitmap.Create;

    try
      { si c'est un jpeg }      if (ext '.jpg') or (ext'.jpeg')
 
then
      begin

        { creation d'une image jpeg }
        JPG := TJPegImage.Create;

        try

          { charge a partir du fichier }
          JPG.LoadFromFile(OpD1.FileName);
          { convertion JPG > BMP }
          JPEGToBMP(JPG,BMP);
          { BMP est prét }
          BMPLoaded := true;

        finally

          { liberation de JPG }
          JPG.Free;

        end;
      end
      else

      { si c'est un bitmap }
      if ext = '.bmp' then

      begin

        { charge a partir du fichier }
        BMP.LoadFromFile(OpD1.FileName);
        { BMP est prét }
        BMPLoaded := true;

      end;
Reste du code....

D'après mes notes, je pensais que le Timage acceptait le format Png sans code.

Merci,

Cincap

[mailto: mailto:]
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
3
Merci
Voila, c'est ok pour moi, j'ai vu l'erreur dans le code, je devais aussi créer un

TPNGObject.Create;

Je cloture le topic, merci à tous.

@+,

Cincap
[mailto: mailto:]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cincap
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
0
Merci
Salut,

pour pouvoir utiliser le format PNG avec Delphi
il faut utiliser soit :
une librairie type "PNGLib"
ou le "GDIPlus de progdigy"
 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
0
Merci
Bonjour Cirec, en effet je le précise dans mon topic, j'utilise la librairie PngLib.

uses Jpeg {$IFDEF PNGLIB1},PNGImage{$ELSE}{$IFDEF PNGLIB2},zPNG{$ENDIF}{$ENDIF};

Pour la sauvegarde, cela fonctionne pour les 3 formats mais au chargement d'un fichier au format *.Png, mon Timage reste vide.

J'oublie certainement une instruction dans mon code.

@+,

Cincap

[mailto: mailto:]
Commenter la réponse de cincap
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
19 novembre 2018
0
Merci
Je te conseille vivement l'utilisation de la bibliothèque GraphicEx qui permet au Timage de charger quasiment tout type d'image sans avoir à modifier le code source.

Présent sur ce site:
http://www.soft-gems.net/index.php?option=com_content&task=view&id=13&Itemid=33

Le zip est ici:
http://www.soft-gems.net/supplement/download.php?ID=13
Commenter la réponse de cptpingu
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
0
Merci
Bonjour à toutes et à tous,

@ Cptpingu, merci pour l'info, je l'avais déjà installée pour D6 et j'avais essayé avec une fiche un Tbouton, un Timage, un Topendialog et à l'exécution, je ne savais pas choisir un fichier *.png alors qu'il était repris dans la propriété filter.

Donc forcément il manquait quelque chose sur ma fiche ?

Sinon je viens d'essayer les 2 exemples.

@+,

Cincap

[mailto: mailto:]
Commenter la réponse de cincap
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
19 novembre 2018
0
Merci
Je ne vois pas ou est le probleme. Si tu charges un fichier png dans un TImage avec GraphicEx, cela fonctionne.
Dans ton opendialog, essaie de mettre "*", ca devrait te permettre de tester.
Commenter la réponse de cptpingu
Messages postés
490
Date d'inscription
dimanche 5 décembre 2004
Dernière intervention
6 avril 2009
0
Merci
oui tu as raison, je ne référenciai pas "GraphicEx" dans l'uses.

Merci à toi.

@+,

Cincap 

[mailto: mailto:]
Commenter la réponse de cincap

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.