Bonjour
QQn connait il un snippet, une librairie, un composant pour re dimensionner des images JPEG/PNG/GIF sous delphi6 ?
ex:
procedure resizePicture(source:String; w:integer; h:integer);
merci
Bonjour
QQn connait il un snippet, une librairie, un composant pour re dimensionner des images JPEG/PNG/GIF sous delphi6 ?
ex:
procedure resizePicture(source:String; w:integer; h:integer);
merci
Bonjour,
dans la FAQ il y a une méthode pour les JPEG :
Comment redimensionner une image
A+
Charly
Mon site : http://lapaille.byethost24.com/index.htm
Bonjour,
Pour les GIF et les PNG tu peux utiliser les bouts de code suivants dont :
- les uns permettent d'en obtenir le Bmp que tu redimensionnes soit avec Bmp.Canvas.StretchDraw(...), soit avec StretchBlt utilisé avec Halftone
- et les autres de sauver le Bmp redimensionné au format GIF ou PNG :
Pour les GIF : ( nécessite d'utiliser l''unit GifImage Disponible ici : http://thinkerprj.googlecode.com/svn...s/GIFImage.pas)
Pour les PNG :
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 function BMPdeGIF(const nomFichierGIF: string): TBitmap; var G: TGifImage; begin result := TBitmap.Create; try G := TGifImage.Create; try G.LoadFromFile(nomFichierGIF); result.Assign(G.Bitmap); finally G.Free; end; finally end; end; procedure SauverBMPsousGIF(const nomFichier: string; const Bmp: tBitMap); var G: TGifImage; begin G := TGifImage.Create; try G.Assign(Bmp); G.SaveToFile(nomFichier); finally G.Free; end; end;Code pour redimensionner avec StretchBlt lorsque le TImage imgResized est prédimensionné compte tenu du Scale-Factor et que le Bmp_Original est stocké dans imgOriginal :
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
23
24
25
26 Utilise les unit''s pngimage, pnglang et zlibpas; (chercher sur le net, ne me souviens plus sur quel site je les ai trouvés) function BMPdePNG(const nomFichierPNG: string): TBitmap; var P: TpngObject; begin Result := TBitmap.Create; try P := TPngObject.Create; try P.LoadFromFile(nomFichierPNG); Result.Assign(P); finally P.Free; end; finally end; end; // BMPdePNG procedure SauverBMPsousPNG(const nomFichierPNG: string; const Bmp: tBitMap); var P: TpngObject; begin P := TPngObject.Create; try try P.Assign(Bmp); P.SaveToFile(nomFichierPNG); finally end; finally P.Free; end; end; // SauverBMPsousPNGA+.
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 procedure StretchBlt_HalfTone; var pt: TPoint; begin with Form1 do begin GetBrushOrgEx(imgResized.Picture.Bitmap.Canvas.Handle, pt); SetStretchBltMode(imgResized.Picture.Bitmap.Canvas.Handle, HalfTone); SetBrushOrgEx(imgResized.Picture.Bitmap.Canvas.Handle, pt.x, pt.y, @pt); StretchBlt(imgResized.Picture.Bitmap.Canvas.Handle, 0, 0, imgResized.Picture.Bitmap.Width, imgResized.Picture.Bitmap.Height, imgOriginal.Picture.Bitmap.Canvas.Handle, 0, 0, imgOriginal.Picture.Bitmap.Width, imgOriginal.Picture.Bitmap.Height, SRCCOPY); imgResized.Invalidate; end; end;
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager