![]() |
Re: Bildbereich ausschneiden
Hallo,
es sollte auch mit CopyRect ohne temporäre Bitmap funktionieren:
Delphi-Quellcode:
Gruß Hawkeye
procedure TForm.CutImage;
var lBMP : TBitmap; begin // Bitmap erzeugen lBMP := TBitmap.Create; try // Originalbild laden lBMP.LoadFromFile('C:\WINDOWS\Kaffeetasse.bmp'); // Mittleren Teil nach (0,0) kopieren lBMP.Canvas.CopyRect(Rect(0, 0, 64, 64), lBMP.Canvas, Rect(32, 32, 96, 96)); // Bild auf die gewünschte Zielgröße beschneiden lBMP.Width := 64; lBMP.Height := 64; // Bild speichern lBMP.SaveToFile ('E:\Tasse.bmp'); finally // Bitmap freigeben lBMP.Free; end; end; |
Re: Bildbereich ausschneiden
ok, erst mal danke für eure Hilfestellungen!
...Nun hab ich ein weiteres Problem, ich möchte 2 bildbereiche (2 senkrechte streifen) aus einem bild ausschneiden, und die in einer neuen bitmap variable als 1 bild zusammensetzen. |
Re: Bildbereich ausschneiden
Geht doch genauso. Wenn du das bisherige verstanden hast, sollte es kein Problem sein es umzusetzen.
|
Re: Bildbereich ausschneiden
hier mein code, er setzt die zwei bilder nicht in dem bitmap objekt videoimage zusammen.
Delphi-Quellcode:
SourceBitmap := videoimage;
TargetBitmap.Width := 30; TargetBitmap.Height:= 150; TargetBitmap2.Width := 30; TargetBitmap2.Height:= 150; // Ausschneiden des ersten Bildbereichs BitBlt(TargetBitmap.Canvas.Handle,0,0,30,150, SourceBitmap.Canvas.Handle, 330, 300, SRCCOPY); // Originalbild neu laden sourcebitmap := videoimage; //Ausschneiden des zweiten Bildbereichs BitBlt(TargetBitmap2.Canvas.Handle,0,0,30,150, SourceBitmap.Canvas.Handle, 360, 300, SRCCOPY); // Zur Überprüfung beide Objekte darstellen paintbox1.Canvas.Draw(0,0,TargetBitmap); paintbox2.Canvas.Draw(0,0,TargetBitmap2); //Beide Objekte zu einem Bitmapobjekt zusammensetzen for y := 0 to 150 do begin for x := 0 to 29 do begin videoimage.Canvas.Pixels[x,y] := TargetBitmap.Canvas.Pixels[x,y]; end; for x := 31 to 59 do begin videoimage.Canvas.Pixels[x,y] := TargetBitmap2.Canvas.Pixels[x,y]; end; end; videoimage.Width := 62; videoimage.Height:= 150; |
Re: Bildbereich ausschneiden
ok, stop, hat sich erledigt. hab mein problem gelöst.
|
Re: Bildbereich ausschneiden
hier noch der code
Delphi-Quellcode:
BitBlt(videoimage.Canvas.Handle,0,0,29,150, SourceBitmap.Canvas.Handle, 330, 300, SRCCOPY);
BitBlt(videoimage.Canvas.Handle,31,0,60,150, SourceBitmap.Canvas.Handle, 430, 300, SRCCOPY); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz