Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Ändra storlek på en JPEG-fil
|
Kategori: Grafik
Inlagt: 2005-01-09
Läst: 1397
Inlagt av: Staffan Berg
|
Beskrivning |
JPEG-filer han med lätthet hanteras av Delphi genom att JPEG-klassen läggs till under uses. I exemplet nedan skapas en kopia av källfilen som är hälften så stor som originalet.
|
Kod |
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtDlgs; type TForm1 = class(TForm) Button1: TButton; OpenPictureDialog1: TOpenPictureDialog; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses JPEG; {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var Jpeg1, Jpeg2: TJPEGImage; TempBitmap: TBitmap; CanvasRect: TRect; begin if OpenPictureDialog1.Execute then begin // Create a Bitmap and two JPEG's TempBitmap := TBitmap.Create; Jpeg1 := TJPEGImage.Create; Jpeg2 := TJPEGImage.Create; try // Load the picture to shrink into the first Jpeg Jpeg1.LoadFromFile(OpenPictureDialog1.FileName); // Set the bitmap width to the new size TempBitmap.Width := JPeg1.Width div 2; TempBitmap.Height := JPeg1.Height div 2; // Create a TRect with the canvas co-ordinates CanvasRect := Rect(0, 0, TempBitmap.Width, TempBitmap.Height); // Draw the JPEG on the Canvas MyBitMap.Canvas.StretchDraw(CanvasRect, JPeg1); // Assign the bitmap to the second Jpeg Jpeg2.Assign(TempBitmap); // Save the second Jpeg in a renamed file Jpeg2.SaveToFile(ExtractFilePath(OpenPictureDialog1.FileName)+ 'Small '+ExtractFileName(OpenPictureDialog1.FileName)); finally // Tidy up the stuff you created before leaving TempBitmap.Free; Jpeg1.Free; Jpeg2.Free; end; end; end; end.
|
|
|