- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1021
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. 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -