Autor Beitrag
Quake User
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Sa 08.01.11 03:08 
Welche Komponeten verwende ich am besten um auf ein Bitmap (png) Vector Grafiken zu zeichnen? (wmf, svg, eps o.ä.)?
Quake User Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Sa 08.01.11 19:56 
Niemand eine Idee?
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: 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.

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: So 09.01.11 18:30 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 09.01.11 19:28 
user profile iconQuake User hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: 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!?

ausblenden 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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)

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Quake User Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: So 09.01.11 20:14 
user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 09.01.11 20:32 
user profile iconQuake User hat folgendes geschrieben Zum zitierten Posting springen:
Ich suche immer noch ein Turorial.
Es gibt nicht für alles Tutorials. Wenn man immer nur etwas nachprogrammiert, bringt das ja auch wenig...

user profile iconQuake User hat folgendes geschrieben Zum zitierten Posting springen:
- 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.

user profile iconQuake User hat folgendes geschrieben Zum zitierten Posting springen:
- 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.

user profile iconQuake User hat folgendes geschrieben Zum zitierten Posting springen:
- ich möchte teilweise transparente Grafiken auf den Hintergrund zeichnen
Das sollte bei PNGs schon gehen, oder suchst du sowas:
www.delphi-forum.de/....php?p=623497#623497
delbor
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19
Erhaltene Danke: 1

Windows 7
RadStudioXE
BeitragVerfasst: 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