![]() |
Bildbereich ausschneiden
Hi,
ich versuche seit Tagen aus einem Bitmap, das in einer variable TBitmap liegt einen Bildbereich auszuschneiden, und diesen in der selben Variable wieder darzustellen. Quasi das Bild auf den Bereich verkleinen. Habe dazu den copyrect befehl benutzt, nur klappt das einfach nicht. bekomme nur das ausgeschnittene bild in einer paintbox angezeigt. Hoffenltich kann mir jemand einen tipp geben. |
Re: Bildbereich ausschneiden
mach es doch inetwa so
Delphi-Quellcode:
temp_bitmap.copyrect(rect(0,0,100,100),orginalbitmap,rect(200,200,300,300));
orginalbitmap:=temp_bitmap; |
Re: Bildbereich ausschneiden
so hab ich es auch probiert, klappt einfach net.
gibt es denn keine alternative oder einfach ein anderer befehl? |
Re: Bildbereich ausschneiden
Was heißt "klappt nicht"? Und das it der richtige Weg, du wirst nur etwas falsch machen.
|
Re: Bildbereich ausschneiden
probier doch mal einzelnes auslesen der Pixel! mit
Delphi-Quellcode:
um die dann inner Image wiederhinzumalen
Canvas.Pixels[x, y];
Delphi-Quellcode:
Canvas.Pixels[x, y] := TColor;
|
Re: Bildbereich ausschneiden
@wursthunter
Arg viel unperformanter gehts schon kaum nichtmehr ;) air |
Re: Bildbereich ausschneiden
Hi, ich muss wieder auf das Thema zurückkommen.
ich bin jetzt seit stunden dran, einen bereich mitten aus einem image in eine andere bitmap variable zu legen, aber es klappt einfach nicht. hab es mit copyrect und der schleifenvariante mit pixels[x,y] versucht.
Code:
und noch die andere variante:
procedure TMainForm.Button4Click(Sender: TObject);
var farbe : tcolor; a,b: integer; bild2: tbitmap; begin bild2 := tbitmap.Create; for a := 0 to 60 do begin for b := 0 to 60 do begin farbe:= videoimage.Canvas.Pixels[a,b]; bild2.Canvas.Pixels[a,b] := farbe; end; end; paintbox2.Canvas.Draw(0,0,bild2); end;
Code:
bei der zweiten variante kommt auch kein richtiger bildbereich raus. er holt mir da zwar den bildbereich,
{ Bild zerlegen }
splitter:=tbitmap.create; splitter.width:=60; splitter.height:=videoimage.Height; splitter.canvas.copyrect(rect(0,0,10,videoimage.Height),videoimage.canvas,rect(20,20,30,videoimage.Height)); videoimage := splitter; macht aber darum alles weiß. ich verzweifele... :-( :wall: |
Re: Bildbereich ausschneiden
nimm dazu am besten BitBlt, das kümmert sich selbst darum das alles klappt wenn source und dest gleich sind.
|
Re: Bildbereich ausschneiden
Zitat:
Du must danach in Deinem Ziel Image nur noch strecken einstellen... Frank :coder: |
Re: Bildbereich ausschneiden
Leider weiß ich nicht wie ich BitBlt zum laufen bekomme
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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