![]() |
löschen eines images
Hi ihr!
Wie kann ich, wenn ich per lineto Linien auf ein das canvas eines image gemalt habe diese wieder weg machen? Grüße, Kiaro |
Re: löschen eines images
hi kiaro
die gleiche Frage wollte ich auch grade stellen, das gleiche problem habe ich nämlich auch. Hab aber auch noch keine lösung gefunden. ich hab es folgendermaßen versucht:
Delphi-Quellcode:
hat aber nicht funktioniert...
ImageBild.refresh;
vielleicht hat hier jemand eine bessere Idee cu gregor |
Re: löschen eines images
den Versuch hatte ich auch schon *gg*
|
Re: löschen eines images
Wenn es ein Hintergrundbild gibt, dann dieses Bild einfach nochmal laden. Alternativ könnte man auch einfach ein Rectangle in einer beliebigen Farbe drüberzeichnen.
Man liest sich, Stanlay :hi: |
Re: löschen eines images
ja bin ich auch grad drauf gekommen, hab ich auch schon versucht, aber irgendwie steh ich da noch auf dem schlauch: ich kann zwar ein Rechteck zeichnen aber ich weiß nicht wie ich das mit einer farbe ausfülle. kann mir da noch jemand helfen??
@Kiaro: ich denke diese Möglichkeit mit dem rechteck ist die einfachste lösung cu geregor |
Re: löschen eines images
Viel einfacher geht es mit:
Delphi-Quellcode:
image1.picture:=nil;
|
Re: löschen eines images
@notam
sie wollen nicht das bild löschen, sondern die linien die sie auf das bild gemalt haben! :zwinker: |
Re: löschen eines images
Ich dachte, sie haben nur die Linien auf dem Image :oops:
|
Re: löschen eines images
oh jetzt wo du es sagst könnte es auch so verstanden werden!
hätte ich mal weiter denken sollen! tut mir leid! :oops: |
Re: löschen eines images
Mal sehen was Kiaro und Gregor später sagen...
|
Re: löschen eines images
Zitat:
Delphi-Quellcode:
weiterhelfen.
Image1.Canvas.Brush.Color := clwhite; //Setzt die Füllfarbe auf weiß
Man liest sich, Stanlay :hi: |
Re: löschen eines images
Hi stanlay: ha danke so funktioniert es. Also problem ist gelöst, ich schaff es jetzt das Image zu leeren
@Notam :und MikeS: ursprünglich waren (zumindest bei mir) nur die Linien zu löschen vorgesehen. Aber
Delphi-Quellcode:
hilft mir auch weiter. Werde ich warscheinlich auch noch in mein projekt einbauen...
image1.picture:=nil;
also ich danke euch allen schon mal, dank euch funzt jeztz alles so wie ich es vorgesehen hab. cu gregor |
Re: löschen eines images
Also bei mir liegt schon ein bild unter den Linien :)
Irgendwie verpennt :wall: Naja, vielen Dank für eure Hilfe, so wie ich das jetzt verstanden funktioniert dass ja mit dem rechteck... Grüße, Kiaro |
Re: löschen eines images
Hi nochmal!
Ich hab jetzt nochmal ewig rumprobiert, aber wenn er die Linien mit dem Rechtck überzeichnet überzeichnet er alles mit dem Rechteck... Ich hab schon probiert das Bild vorm dem überzeichnen in eine TBitmap Variable zu speichern und hinterher von da aus wieder in die canvas.picture.bitmap Eigenschaft zu schreiben, aber das macht er auch nicht... :cry: Kiaro |
Re: löschen eines images
du kannst bilder hin- und herkopieren mit
Delphi-Quellcode:
oder
Bitmap.Canvas.CopyRect(const Dest: TRect; Canvas: TCanvas; const Source: TRect);
Delphi-Quellcode:
[edit=Luckie]Delphi-Tags gesetzt. Mfg, Luckie[/edit]
BitBlt aus Windows, die eigentlich nur von deinem Canvas gewrappt wird
|
Re: löschen eines images
achja wenn du nur
var buffer: TBitmap; hast und dann sagst buffer := Image1.Picture.Bitmap dann übergibst du nur deinen Zeiger auf das Bild. die Daten werden nicht dupliziert. dazu musst du erst
Delphi-Quellcode:
machen.
buffer := TBitmap.Create;
buffer.pixelformat := image1.picture.bitmap.pixelformat; buffer.width := image1.picture.bitmap.width; buffer.height := image1.picture.bitmap.height; buffer.Canvas.CopyRect(bounds(0,0,buffer.width, buffer.height),image1.picture.bitmap.canvas,bounds(0,0,buffer.width, buffer.height)) ; [edit=Luckie]Delphi-Tags gestezt. Mfg, Luckie[/edit] |
Re: löschen eines images
Hi nochmal!
Ich hab das so jetzt mal probiert, sieht bei mir jetzt folgendermaßen aus:
Delphi-Quellcode:
rasterz macht nichts weiter als ein paar Linien auf das canvas zeichen.
procedure TForm1.Raster1Click(Sender: TObject);
var pic:TBitmap; begin try pic:=TBitmap.Create; pic.PixelFormat:=form1.Image1.Picture.Bitmap.PixelFormat; pic.Width:=form1.Image1.Picture.Bitmap.Width; pic.Height:=form1.Image1.Picture.Bitmap.Height; pic.Canvas.CopyRect(bounds(0,0,pic.width,pic.height),form1.image1.picture.bitmap.canvas,bounds(0,0,pic.width,pic.height)); if raster1.Checked = false then begin rasterz; raster1.Checked:=true; form1.label2.visible:=true; end else begin raster1.checked:=false; form1.Label2.Visible:=false; form1.Image1.canvas.brush.color:=clTeal; form1.Image1.canvas.rectangle(0,0,form1.Image1.width,form1.Image1.Height); form1.Image1.Picture.Bitmap:=pic; end; finally pic.Free; end; end; Wenn ich jetzt raster.checked machen will (is n Punkt im Mainmenu) dann sagt er mir aber ungültiges Pixelformat, wenn er das Speichern des Bildes tun sollte... weiß grad echt nich mehr weiter Vielen Dank im Voraus, Kiaro [edit=Luckie]Sind in diesem Thread die Delphi-Tags kaput? :roll: Mfg, Luckie[/edit] |
Re: löschen eines images
pixelformat setzen!
Delphi-Quellcode:
pic:=TBitmap.Create;
pic.PixelFormat:=form1.Image1.Picture.Bitmap.PixelFormat; pic.Width:=form1.Image1.Picture.Bitmap.Width; pic.Height:=form1.Image1.Picture.Bitmap.Height; pic.Pixelformat := pf24bit; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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