Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#13

Re: Bild vergrößern mit StretchBlt

  Alt 2. Apr 2009, 11:14
Wenn du immer noch nicht klar kommst hier das ergebnis

Nur unteren Bereich geändert!

Delphi-Quellcode:
Procedure TForm1.Button5Click(Sender: TObject);
Var
   H,B : Integer;
   help,Org : TImage;
Begin
   help:=TImage.Create(self);
   Org:=TIMage.Create(self);
   Try
      Org.Picture.LoadFromFile(OpenDialog1.FileName);
      SetStretchBltMode(help.Canvas.Handle,HALFTONE);
      B:=Org.Picture.Width;
      H:=Org.Picture.Height;
      ShowMessage(FormatFloat('#,##0',B)+'x'+FormatFloat('#,##0',H));
      If H>B Then
      Begin
         help.Picture.Graphic.Width:=1660;
         help.Picture.Graphic.Height:=2340;
         StretchBlt(help.Canvas.Handle, // Ziel
                    0,0,1660,2340, // Ziel Ausmaße
                    Org.Canvas.Handle, // Quelle
                    0,0,B,H, // Ausmaße Quelle
                    SRCCOPY)
      End
      Else
      //>>>>>>>>>< geändert
      Begin
         help.Picture.Graphic.Width:=2340;
         help.Picture.Graphic.Height:=1660;
              StretchBlt(help.Canvas.Handle,    // Ziel
                    0,0,help.Picture.Graphic.Width,help.Picture.Graphic.Height, // Ziel Ausmaße
                    Org.Canvas.Handle,    // Quelle
                    0,0,Org.Picture.Bitmap.Width,Org.Picture.Bitmap.Height,               // Ausmaße Quelle
                    SRCCOPY);
      End;
      // >>>>>>>>>>>> end geändert
      help.Picture.Bitmap.SaveToFile(OpenDialog1.FileName+'_neu.bmp');
   Finally
      help.Free;
      Org.Free;
   End;
End;

Procedure TForm1.Button6Click(Sender: TObject);
Begin
   If OpenDialog1.Execute Then
   Begin
      Image1.Picture.Bitmap.LoadFromFile(OpenDialog1.FileName);
      Button3.Enabled:=True;
      Button4.Enabled:=True;
      Button5.Enabled:=True;
   End;
End;
gruss Emil
  Mit Zitat antworten Zitat