Einzelnen Beitrag anzeigen

Nelphin

Registriert seit: 2. Feb 2009
Ort: Kaiserslautern
71 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Bild vergrößern mit StretchBlt

  Alt 1. Apr 2009, 23:39
Zitat von Schwedenbitter:
Was mache ich da verkehrt?

Gruß und Dank, Alex




nach einigem chaotischen Herumprobieren habe ich jetzt diesen Code zum Laufen gebracht:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);

Var
   help : TImage;

Begin
help:=TImage.Create(self);
help.Picture.assign(image1.picture);

   Try

      SetStretchBltMode(help.Canvas.Handle,HALFTONE);
      If Image1.Picture.Height>Image1.Picture.Width Then
      begin
         help.picture.graphic.Width:=1660;help.picture.graphic.height:=2340;
         ShowMessage('Hochformat');
         StretchBlt(help.Canvas.Handle, // Ziel
                    0,0,1660,2340, // Ziel Ausmaße
                    Image1.Canvas.Handle, // Quelle
                    0,0,Image1.Picture.Width,Image1.Picture.Height, // Ausmaße Quelle
                    SRCCOPY);
      end Else begin
         help.picture.graphic.Width:=2340;help.picture.graphic.height:=1660;
         ShowMessage('Querformat');
         StretchBlt(help.Canvas.Handle, // Ziel
                    0,0,2340,1660, // Ziel Ausmaße
                    Image1.canvas.handle, // Quelle
                    0,0,Image1.picture.Bitmap.height,Image1.picture.bitmap.Width, // Ausmaße Quelle
                    cmsrccopy);
      End;
   Finally
   try
   image1.picture.assign(help.picture);
   image1.Width:=1000;
   image1.Height:=2340;
   finally
      help.Free;
   end;
   end;
End;
ist sicher optimierbar, aber ich bin ja selbst kein profi
  Mit Zitat antworten Zitat