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
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;![]()
Partager