Format Png [Résolu]

cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 5 oct. 2007 à 09:03 - Dernière réponse : cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention
- 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
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 5 oct. 2007 à 13:11
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:]

Merci cincap 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de cincap
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 5 oct. 2007 à 11:01
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
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 5 oct. 2007 à 11:14
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
cptpingu 3797 Messages postés dimanche 12 décembre 2004Date d'inscription 13 août 2018 Dernière intervention - 8 oct. 2007 à 10:33
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
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 8 oct. 2007 à 10:59
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
cptpingu 3797 Messages postés dimanche 12 décembre 2004Date d'inscription 13 août 2018 Dernière intervention - 8 oct. 2007 à 11:19
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
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 8 oct. 2007 à 11:59
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.