begin process at 2008 07 25 03:32:48
1 216 051 membres
34 nouveaux aujourd'hui
14 180 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Message de sauvegarde [ Mutimédia / Image & Vidéo ] (cincap)

Message de sauvegarde le 15/01/2007 13:54:21

cincap

Bonjour à tous,

Est t'il possible de mettre un message d'avertissement au cas ou le fichier bmp ou jpg existerait avant de sauvegarder le nouveau fichier.

Voici le code que j'utilise :

procedure TForm1.BenregistrerClick(Sender: TObject);
var
  nomfich : string;
  ext     : string;
  JP  : TJPEGImage;
begin
    if savepicturedialog1.execute then
  begin
    ext :=uppercase(extractfileext(savepictureDialog1.FileName));
    if Not ((ext = '.BMP') or (ext = '.JPG')) then
    begin
     showmessage('L''extension du fichier n''est pas correcte, soit en jpg ou en bmp');
     exit;
    end;
    if ext = '.BMP' then
      image1.picture.savetofile(savepictureDialog1.FileName)
    else
    if ext = '.JPG' then
    begin
      JP := TJPEGImage.Create;                  try
        JP.CompressionQuality := 90;  
        JP.ProgressiveEncoding := false;
       // JP.ProgressiveEncoding := true;  au choix
        JP.Assign(image1.picture.bitmap);     
        JP.SaveToFile(savepictureDialog1.FileName);  // enregistrement
      finally
        JP.Free;                            
      end;
    end;
  end;
end;

Merci d'avance.

Cincap
[url]mailto:[/url]


Re : Message de sauvegarde le 15/01/2007 14:17:30

cirec
Membre Club
(Admin CS)
Réponse acceptée !
Salut,

tout simplement en mettant la propriété : ofOverwritePrompt     de ton SavePictureDialog à True

 
@+
Cirec


Re : Message de sauvegarde le 15/01/2007 14:36:28

cincap

Bonjour Cirec,

Décidemment, je pense toujours au plus compliqué.

Tu es toujours prêt à la réponse rapide à croire que tu vis sur le site.

Encore merci de ta réponse.

@+,

Cincap

[url]mailto:[/url]


Re : Message de sauvegarde le 15/01/2007 23:42:37

f0xi
Membre Club
(Admin CS)
Réponse acceptée !



tiens y'a beaucoup plus court et aussi un exemple de comment ajouter des formats a la compilation ce qui peut etre pas mal quand on diffuse la source... :


{ -- use PNG format -- remove/insert double-slash}
{//$DEFINE SAVEPNG}

{$IFDEF SAVEPNG}
  { -- use PNG with PNGImage -- remove/insert double-slash}
    {//$DEFINE PNGLIB1}
  { -- use PNG with zPNG -- remove/insert double-slash}
    {//$DEFINE PNGLIB2}
{$ENDIF}

{$IFDEF SAVEPNG}
   {$IFDEF PNGLIB1}
     {$MESSAGE 'La prise en charge du format PNG est activée avec PNGImage.'}
   {$ELSE}
     {$IFDEF PNGLIB2}
       {$MESSAGE 'La prise en charge du format PNG est activée avec zPNG.'}
     {$ELSE}
       {$MESSAGE warn 'La prise en charge du format PNG est activée avec une librairie inconnue.'}
     {$ENDIF}
   {$ENDIF}
{$ELSE}
   {$MESSAGE warn 'La prise en charge du format PNG est Désactivée.'}
{$ENDIF}

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

procedure TForm1.Button1Click(Sender: TObject);
begin
  with
SavePictureDialog1 {or SaveDialog1}do begin
     Filter     := 'Bitmap|.bmp|Jpeg|.jpg'{$IFDEF SAVEPNG}+'|Png|.png'{$ENDIF};
     DefaultExt := '.bmp';
     if execute then
        case FilterIndex of
             1 :
with TBitmap.Create do
                 try
                   Assign(image1.picture.Graphic);
                   PixelFormat := pf24bit;
                   SaveToFile(ChangeFileExt(FileName,'.bmp'));
                 finally
                   Free;
                 end;

             2 :
with TJPEGImage.Create do
                 try
                   CompressionQuality  := 80; {75..85 : best ratio Size/Quality}
                   ProgressiveEncoding := True; {True : good for web or slow computer}
                   Assign(image1.picture.bitmap);
                   SaveToFile(ChangeFileExt(FileName,'.jpg'));
                
finally
                   Free;
                
end;

{$IFDEF SAVEPNG}
  {$IFDEF PNGLIB1}
{use PNGImage lib}
             3 :
with TPNGObject.Create do
                 try
                   Assign(image1.picture.bitmap);
                   CompressionLevel := 9; {9 : best quality but slow at hell}
                   InterlaceMethod  := imNone;
                   Filters          := [pfAverage];
                   Transparent      := false;
                   RemoveTransparency;
                   SaveToFile(ChangeFileExt(FileName,'.png'));
                
finally
                   Free;
                
end;
  {$ELSE}
    {$IFDEF PNGLIB2}
{use zPNG lib}
             3 :
with TPNGImage.Create do
                 try
                   Assign(image1.picture.bitmap);
                   CompressionLevel := clBest;
                   PixelFormat      := pf24bit;
                   SaveToFile(ChangeFileExt(FileName,'.png'));
                
finally
                   Free;
                
end;
    {$ELSE}{use Unknow/Custom PNG lib}
             3 :
with {INSERT NAME OF YOUR CUSTOM PNG CLASS HERE}.Create do
                 try
                   {INSERT PROPERTIES/PARAMETERS OF YOUR CUSTOM PNG CLASS HERE}
                   SaveToFile(ChangeFileExt(FileName,'.png'));
                
finally
                   Free;
                
end;
    {$ENDIF}
  {$ENDIF}
{$ENDIF}


       
end; {case}
 
end; {with}
end; {procedure}



Croc (click me)

Re : Message de sauvegarde le 16/01/2007 19:18:52

cincap
Bonsoir Foxi,

Merci pour ton exemple, comme le png ne fonctionne pas avec cette source, je suppose qu'il faut ajouter à ma librairie un composant (png), je travaille sur D6 et je n'ai jamais réussi à installer celui que j'avais.

A moins que je ne me trompe.

@+,

Cincap

[url]mailto:[/url]

Re : Message de sauvegarde le 17/01/2007 00:08:10

f0xi
Membre Club
(Admin CS)

en fait, tu peu copier les code directement, tu verras qu'a la compilation une librairie PNG n'est pas necessaire puisque le format est desactivé grace aux conditions de compilations.

{ -- use PNG format -- remove/insert double-slash}
{//$DEFINE SAVEPNG}

{$IFDEF SAVEPNG}
  { -- use PNG with PNGImage -- remove/insert double-slash}
    {//$DEFINE PNGLIB1}
  { -- use PNG with zPNG -- remove/insert double-slash}
    {//$DEFINE PNGLIB2}
{$ENDIF}


par contre si je fait :

{ -- use PNG format -- remove/insert double-slash}
{$DEFINE SAVEPNG}

{$IFDEF SAVEPNG}
  { -- use PNG with PNGImage -- remove/insert double-slash}
    {$DEFINE PNGLIB1}
  { -- use PNG with zPNG -- remove/insert double-slash}
    {//$DEFINE PNGLIB2}
{$ENDIF}


la il m'en faudrat une ...

Croc (click me)

Re : Message de sauvegarde le 17/01/2007 00:09:29

f0xi
Membre Club
(Admin CS)


ah j'oubliais, l'avantage de cette methode c'est que mis a part la taille de la source, la taille de l'executable ne serat pas plus elevée avec le surplus de code.
c'est un bon trucs a savoir donc.


Croc (click me)

Re : Message de sauvegarde le 17/01/2007 08:10:53

cincap
Bonjour,

@ Foxi, j'avais bien compris, mais le filtre *.png n'aparaissant pas dans la sauvegarde, j'en déduit que je dois installer une librairie.

As tu un lien pour cette librairie compatible D6.

Merci.

@+,

Cincap

[url]mailto:[/url]

Re : Message de sauvegarde le 17/01/2007 10:06:57

cincap
Réponse acceptée !

@ Foxi,

Ok tout est en ordre, j'ai réinstallé la librairie "Zpng" sans problème et naturellement cela fonctionne, comme quoi...

Merci pour cette méthode très utile surtout pour ceux qui utilisent beaucoup d'applications basées sur les photos.

@+,

Cincap



[url]mailto:[/url]


Re : Message de sauvegarde le 17/01/2007 17:26:05

f0xi
Membre Club
(Admin CS)

de rien, en fait, tu as deux lib PNG assé connue : zPNG et PNGImage.

niveau qualitée, je crois qu'elles sont assés proche.

je pense que tu as bien compris l'interet des directives de compilations, c'est vraiment un plus a connaitre et peu de source en parle.

a vrai dire meme, on ne doit etre que 2 ou 3 sur DelphiFr a les manipuler....
mais quand on vois la souplesse que ça ajoute a un source, c'est un peu idiot de passer a coter.

bien sur comme tu peu le voir les possibilitées de la solution que je t'ai donner sont quasiment infinie.
on peu trés bien utiliser la GDI normal et les lib BMP/JPG par defaut, ou utiliser d'autre lib comme la GDI+ ou DirectX ou OpenGL etc.
Tu n'etait par contre pas obliger d'installer une lib PNG, mais c'est aussi un plus a avoir dans delphi, puisque tout compte fait, c'est un format courrant trés utilisé.
un logiciel de traitement d'image devrait toujours posseder ces trois formats de base BMP, JPG, PNG, c'est le minimum.
aprés, on peu aussi ajouter un support PCX, TIFF et TARGA qui sont les 3 formats qui viennent naturellement a la suite.


Croc (click me)


[Page 1 Page 2]
Classé sous : end, jpg, bmp, ext, jp

Participer à cet échange

Pub



Appels d'offres

Creation portail video
Budget : 3 000€
Site de e-commerce
Budget : 5 000€
Demande de devis pour ...
Budget : 7 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS