Entwickler-Ecke
Multimedia / Grafik - Vector Grafik über Bitmap zeichen
Quake User - Sa 08.01.11 03:08
Titel: Vector Grafik über Bitmap zeichen
Welche Komponeten verwende ich am besten um auf ein Bitmap (png) Vector Grafiken zu zeichnen? (wmf, svg, eps o.ä.)?
Quake User - Sa 08.01.11 19:56
Niemand eine Idee?
Bergmann89 - Sa 08.01.11 20:12
Hey,
ich kenn keine Komponente, abner zur not kannt du dir das ja auch selber schreiben, bzw die Vektorgrafiken in ein BMP umkodieren. zu den einzellnen Formaten findet man bestimmt bei gogle irgendwas zum Aufbau so ner Datei. Dann muss man die Sachen nur noch richtig rauslesen un dann auf die Bitmap zeichnen.
MfG Bergmann.
jaenicke - Sa 08.01.11 21:11
Delphi selbst kann doch Vektorgrafiken lesen. Also einfach in TPicture laden oder direkt ein TMetafile dafür benutzen. Dieses Bild kannst du wiederum mit TBitmap.Canvas.Draw direkt auf ein TBitmap zeichnen.
Quake User - So 09.01.11 18:30
jaenicke hat folgendes geschrieben : |
Delphi selbst kann doch Vektorgrafiken lesen. Also einfach in TPicture laden oder direkt ein TMetafile dafür benutzen. Dieses Bild kannst du wiederum mit TBitmap.Canvas.Draw direkt auf ein TBitmap zeichnen. |
Also: ich verwende derzeit ein Image. In dieses lade ic hden Hintergrund. Nun kann ich auf das Canvas des Image bspw. mit "Ellipse" Kreise zeichnen.
Image1.Canvas.Ellipse (x-2,y-2,x+2,y+2);
Ich suche noch eine Möglichkeit, auch andere Bilder (Vektor Grafiken) an bestimmten Positionen des Image zu zeichnen.
jaenicke - So 09.01.11 19:28
Quake User hat folgendes geschrieben : |
Ich suche noch eine Möglichkeit, auch andere Bilder (Vektor Grafiken) an bestimmten Positionen des Image zu zeichnen. |
Genau das habe ich doch geschrieben. :gruebel:
Wobei du eben zum Zeichnen in diesem Fall statt TBitmap.Canvas.Draw eben Image1.Canvas.Draw benutzt.
Quake User - So 09.01.11 19:28
Das Image1.Canvas.Draw(50,50,wK) im folgenden Code löst eine Exception aus: "Ein Bild kann nur geändert werden, wenn es ein Bitmap enthällt." Das Image enthällt aber ein Bitmap!?
Delphi-Quelltext
1: 2: 3:
| wK:= TMetaFile.Create; wK.LoadFromFile(ExtractFilePath(ParamStr(0))+'wK.emf'); Image1.Canvas.Draw(50,50,wK); |
Ich habe in der Hilfe folgendes gefunden:
Delphi-Quelltext
1:
| Form1.Canvas.Draw(50,50,wK); |
Das funktioniert. Ich möchte aber nicht auf die Form, sondern auf das Bitmap zeichnen (da man bspw. das Bitmap auch vergrößern oder verkleinern kann und sich dann das Gezeichnete verschiebt.) Ich benötige dabei das Image aber nur als Hintergrund.
Ich habe hier das Konzept noch nicht verstanden. Was verwendet Ihr und wie? Könnt Ihr ein Einstiegst Tutorial empfehlen?
bummi - So 09.01.11 19:54
Du hast wahrscheinlich kein Bitmap geladen sondern ein Picture, z.B. ein PNG, ICO o.ä..
Einfach in ein Dummyimage laden und in Zielbild malen mit Canvas.Draw(0,0,Dummyimage.Picture.Graphic)
Quake User - So 09.01.11 20:14
bummi hat folgendes geschrieben : |
Du hast wahrscheinlich kein Bitmap geladen sondern ein Picture, z.B. ein PNG, ICO o.ä..
Einfach in ein Dummyimage laden und in Zielbild malen mit Canvas.Draw(0,0,Dummyimage.Picture.Graphic) |
Ja, das war das Problem.
Ich suche immer noch ein Turorial. Hier mal meine Zielstellung:
- ich möchte auf ein Hintergrund Bitmap EMF Grafiken (oder andere Vektorformate) und auch Text zeichnen
- ich möchte die EMF Grafiken später noch mit der Maus verschieben können.
- ich möchte teilweise transparente Grafiken auf den Hintergrund zeichnen
jaenicke - So 09.01.11 20:32
Quake User hat folgendes geschrieben : |
Ich suche immer noch ein Turorial. |
Es gibt nicht für alles Tutorials. Wenn man immer nur etwas nachprogrammiert, bringt das ja auch wenig...
Quake User hat folgendes geschrieben : |
- ich möchte auf ein Hintergrund Bitmap EMF Grafiken (oder andere Vektorformate) und auch Text zeichnen |
Das weißt du ja jetzt wie das geht.
Quake User hat folgendes geschrieben : |
- ich möchte die EMF Grafiken später noch mit der Maus verschieben können. |
Dafür musst du dir die einzelnen Teile merken und entsprechend zeichnen. Hier bietet sich eine TPaintBox an, auf die du das alles zeichnest. Wenn der Benutzer dann mit der Maus klickt, kannst du aus deinen gespeicherten Positionsdaten der Einzelteile feststellen, auf welches der Benutzer geklickt hat.
Dann merkst du dir, dass dieses gerade ausgewählt ist. Wenn der Benutzer jetzt mit der Maus zieht, bewegst du dieses Einzelteil und zeichnest es entsprechend.
Quake User hat folgendes geschrieben : |
- ich möchte teilweise transparente Grafiken auf den Hintergrund zeichnen |
Das sollte bei PNGs schon gehen, oder suchst du sowas:
http://www.delphi-forum.de/viewtopic.php?p=623497#623497
delbor - Mo 10.01.11 12:27
Hi zusammen
Delphi selbst kennt seit Urzeiten TMetaFile und TMetafileCanvas, um Vektorgrafiken zu zeichnen.
Mit TMetafileCanvas kann z.B. in eine Paintbox gezeichnet werden.
Gruss
Delbor
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!