Registriert seit: 2. Feb 2009
Ort: Kaiserslautern
71 Beiträge
Turbo Delphi für Win32
|
Re: Bild vergrößern mit StretchBlt
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
|
|
Zitat
|