Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Bild vergrößern mit StretchBlt

  Alt 2. Apr 2009, 11:23
Zitat von EWeiss:
Hier ein Bild.. denke so soll es sein oder ?
Nein, leider nicht. Das Image1 ist zweitrangig. Ich will nicht das Bild im Programm ausgeben. Das macht doch TImage allein passend, wenn man die Eigenschaften richtig setzt.

Ich möchte:
1. Bild laden (egal welche Größe)
2. vergrößern oder verkleinern auf 1660x2340 (= DINA4 bei 200 dpi)
3. DINA4-Bild abspeichern

Und so klappt es jetzt endlich, auch wenn Du erster warst:
Delphi-Quellcode:
Procedure TForm1.Button5Click(Sender: TObject);
Var
   H,B         : Integer;
   Quelle,Ziel   : TImage;
Begin
   If OpenDialog1.Execute Then
   Begin
      Quelle:=TImage.Create(self);
      Ziel:=TImage.Create(self);
      Try
         Quelle.Picture.Bitmap.LoadFromFile(OpenDialog1.FileName);
         B:=Quelle.Picture.Bitmap.Width;
         H:=Quelle.Picture.Bitmap.Height;
         If H>B Then
         Begin
            Ziel.Width:=1660;
            Ziel.Height:=2340;
            StretchBlt(Ziel.Canvas.Handle,   // Ziel
                       0,0,1660,2340,         // Ziel Ausmaße
                       Quelle.Canvas.Handle,   // Quelle
                       0,0,B,H,               // Ausmaße Quelle
                       SRCCOPY)
         End
         Else
            Ziel.Width:=2340;
            Ziel.Height:=1660;
            StretchBlt(Ziel.Canvas.Handle,   // Ziel
                       0,0,2340,1660,         // Ziel Ausmaße
                       Quelle.Canvas.Handle,   // Quelle
                       0,0,B,H,               // Ausmaße Quelle
                       SRCCOPY);
         Ziel.Picture.Bitmap.SaveToFile(OpenDialog1.FileName+'_neu.bmp');
      Finally
         Quelle.Free;
         Ziel.Free;
      End;
   End;
End;
Danke an alle, die so aktiv mitgedacht haben!!!
Alex Winzer
  Mit Zitat antworten Zitat