Autor
|
Thema: Text auf Bild schreiben (1374 mal gelesen)
|
INLU Mitglied Konstrukteur Automotive
Beiträge: 71 Registriert: 01.03.2008
|
erstellt am: 12. Sep. 2010 13:56 <-- editieren / zitieren --> Unities abgeben:
Hallo V5 Gemeinde, ich versuche gerade, ein Bild(Screenshot), das ich vorher erzeugt habe, mit einem Text zu versehen. Leider habe ich hierfür nur möglichkeiten mit VB gefunden, aber nicht mit VBA. Ist jemanden eine Möglichkeit bekannt, so etwas umzusetzen? Mein Code sieht folgendermassen aus:
Code:
Set aktiWin = CATIA.ActiveWindow Set viewer3D1 = aktiWin.ActiveVieweraktiWin.Layout = catWindowGeomOnly Dim color0(2) Dim color(2) 'Hintergundfarbe in Weiß setzen viewer3D1.GetBackgroundColor color0 color(0) = 1 color(1) = 1 color(2) = 1 viewer3D1.PutBackgroundColor color viewer3D1.CaptureToFile 5, Picname aktiWin.Layout = catWindowSpecsAndGeom viewer3D1.PutBackgroundColor color0
mfg Lars Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 12. Sep. 2010 20:38 <-- editieren / zitieren --> Unities abgeben: Nur für INLU
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 14. Sep. 2010 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für INLU
Habe das Problem wahrscheinlich nicht verstanden: 1. Im VBA müsste es theoretisch genauso funktionieren wie im VB 2. Kann man denn dann nicht einfach ein Textfeld vor dem Bild erstellen? ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
INLU Mitglied Konstrukteur Automotive
Beiträge: 71 Registriert: 01.03.2008
|
erstellt am: 19. Sep. 2010 16:52 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke für die Hilfe. Ich habe mir jetzt ein workaround überlegt. Ich füge das Bild in ein Catdrawing ein, erzeuge dann ein textfeld und speichere es danach als Bild. Funktioniert ganz gut, ist aber nicht gerade performant. Ihr könnt aber gerne weiter über das Thema plaudern. Vielleicht findet sich ja doch noch eine bessere Lösung! mfg Lars [Diese Nachricht wurde von INLU am 19. Sep. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 19. Sep. 2010 17:39 <-- editieren / zitieren --> Unities abgeben: Nur für INLU
Hallo Lars, wie es Jens schon geschrieben hatte, wirst du mit CATIA und VBA Bordmitteln hier nicht ins Ziel kommen. Das was du machen möchtest ist ja eigentlich schon "Bildverarbeitung" und fällt somit aus den normalen Aufgabenbereich. In VB.NET gibt es aber eine ziemlich einfache (und auch schnelle) Möglichkeit. Nach etwas googlen habe ich folgeder Code gefunden: Code: Dim oImg As New Bitmap("d:\BildZuBeschriten.jpg") Dim oTempImg As New Bitmap(oImg, New Size(oImg.Width, oImg.Height)) Dim oGraphic As Graphics = Graphics.FromImage(oTempImg) Dim oNewBrush As New SolidBrush(Color.Black) oGraphic.DrawString("Beschriftung", New Font("Times New Roman", 14, FontStyle.Italic), oNewBrush, New PointF(10, 30)) oTempImg.Save("d:\BeschrifteterBild.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
Über Formate, Schriftart und ähnliches gibt es viele Möglichkeiten. Die Quelle für meinen Code habe ich hier gefunden.Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
INLU Mitglied Konstrukteur Automotive
Beiträge: 71 Registriert: 01.03.2008
|
erstellt am: 19. Sep. 2010 18:40 <-- editieren / zitieren --> Unities abgeben:
|