(Gast)
n/a Beiträge
|
Re: Bild vergrößern mit StretchBlt
2. Apr 2009, 12: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
|
|
Zitat
|