Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bildbereich ausschneiden (https://www.delphipraxis.net/63582-bildbereich-ausschneiden.html)

DocZenith 20. Feb 2006 21:15


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.

arbu man 20. Feb 2006 21:57

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;

DocZenith 21. Feb 2006 07:18

Re: Bildbereich ausschneiden
 
so hab ich es auch probiert, klappt einfach net.
gibt es denn keine alternative oder einfach ein anderer befehl?

Luckie 21. Feb 2006 07:23

Re: Bildbereich ausschneiden
 
Was heißt "klappt nicht"? Und das it der richtige Weg, du wirst nur etwas falsch machen.

wursthunter 21. Feb 2006 22:55

Re: Bildbereich ausschneiden
 
probier doch mal einzelnes auslesen der Pixel! mit
Delphi-Quellcode:
Canvas.Pixels[x, y];
um die dann inner Image wiederhinzumalen

Delphi-Quellcode:
Canvas.Pixels[x, y] := TColor;

Airblader 22. Feb 2006 06:16

Re: Bildbereich ausschneiden
 
@wursthunter

Arg viel unperformanter gehts schon kaum nichtmehr ;)

air

DocZenith 12. Apr 2006 23:15

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:
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;
und noch die andere variante:
Code:
  { 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;
bei der zweiten variante kommt auch kein richtiger bildbereich raus. er holt mir da zwar den bildbereich,
macht aber darum alles weiß.

ich verzweifele... :-( :wall:

SirThornberry 13. Apr 2006 06:21

Re: Bildbereich ausschneiden
 
nimm dazu am besten BitBlt, das kümmert sich selbst darum das alles klappt wenn source und dest gleich sind.

Mavarik 13. Apr 2006 07:04

Re: Bildbereich ausschneiden
 
Zitat:

Zitat von DocZenith
bei der zweiten variante kommt auch kein richtiger bildbereich raus. er holt mir da zwar den bildbereich,
macht aber darum alles weiß.

ich verzweifele... :-( :wall:

Ist doch richtig?!? Was soll den sonst passieren? Der Bildbereich den Du rausholst ist doch kleiner...

Du must danach in Deinem Ziel Image nur noch strecken einstellen...

Frank :coder:

DocZenith 13. Apr 2006 07:22

Re: Bildbereich ausschneiden
 
Leider weiß ich nicht wie ich BitBlt zum laufen bekomme


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.
Seite 1 von 2  1 2      

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