| Autor |
Beitrag |
-CrimeTime-
      
Beiträge: 55
|
Verfasst: Di 16.11.10 09:12
Hallo,
ich versuche derzeitig mit Hilfe einer PictureBox Texte auf bestimmten Positionen Zeichnen zu lassen, doch leider übernimmt er die X und Y Position nicht, und Zeichnet alles auf einen Punkt (in der Mitte der PictureBox).
Hier der Code:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| private Bitmap DrawText(Bitmap img, String Text, int XPos, int YPos) { Graphics grf = Graphics.FromImage(img); Font myFont = new Font("Arial", 8); grf.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; try { using (myFont) { grf.DrawString(Text, myFont, Brushes.Red, new Point(XPos, YPos)); } } finally { grf.Dispose(); myFont.Dispose(); } return img; } |
Moderiert von Christian S.: Code- durch C#-Tags ersetzt
|
|
traceurmicha
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Di 16.11.10 12:45
Hallo,
vielleicht liege ich jetzt auch falsch, aber kann es sein das DrawString() statt new Point(int x, int y) vielleicht new PointF(float x, float y) braucht?
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
-CrimeTime- 
      
Beiträge: 55
|
Verfasst: Di 16.11.10 12:51
also, ich habe eine Source die GNU Lizenziert ist, diese bin ich am umschreiben bzw. am nach Programmieren.
in dieser GNU Source Funktioniert der Code 1A doch meiner überhaupt nicht.
Hier der Code aus der GNU Source:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| private Bitmap DrawText(Bitmap img, String TextToDraw, int XPos, int YPos) { Graphics G = Graphics.FromImage(img); G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; Font DrawFont = new Font("Arial", 8);
G.DrawString(TextToDraw, DrawFont, Brushes.Black, new Point(XPos, YPos));
G.Dispose(); DrawFont.Dispose();
return img; } |
meiner ist ja Oben gepostet.
EDIT: aber selbst wenn ich diesen Code so 1:1 übernehme geht es auch nicht, weißt du evtl. woran das noch liegen könnte?
Gruß Crime
Moderiert von Christian S.: Code- durch C#-Tags ersetzt
|
|
traceurmicha
      
Beiträge: 160
Erhaltene Danke: 9
Win XP SP2, Win 7 Pro., Ubuntu 9, Debian 5
C#, ASP.NET, MSSQL, PHP(Microsoft Visual Studio 2010 Ultimate, SharpDevelop 4, Microsoft SQL Server2008 Express, Eclipse for PHP)
|
Verfasst: Di 16.11.10 12:58
Also auf den ersten blick sehe ich da nichts...
versuch mal dein Projekt schrittweise zu debuggen und schau was passiert, so kannst du den Fehler denke ich leister einkreisen.
Gruß
Micha
_________________ Programmieren ist ein Rennen zwischen den Softwareentwicklern, die versuchen größere und bessere idiotensichere Programme zu schreiben und dem Universum, welches versucht größere und bessere Idioten zu produzieren. Zur Zeit liegt das Universum in Führung.
|
|
Th69
      

Beiträge: 4805
Erhaltene Danke: 1061
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Di 16.11.10 15:41
Hallo CrimeTime,
du schreibst oben etwas von einer PictureBox, deine Methode verwendet aber direkt ein Image (bzw. Bitmap).
Wie rufst du deine Methode denn auf und hast du der PictureBox überhaupt ein genügend grosses Image zugewiesen?
P.S. bgzl. Eliminierung der Dispose-Methode mittels "using", sollte der Code dann so aussehen:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private Bitmap DrawText(Bitmap img, String text, int xPos, int yPos) { using(Graphics g = Graphics.FromImage(img)) { g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; using(Font font = new Font("Arial", 8)) g.DrawString(text, font, Brushes.Black, new Point(xPos, yPos)); } return img; } |
(lokale Variablen/Parameter sollten am Anfang klein geschrieben werden...)
|
|
-CrimeTime- 
      
Beiträge: 55
|
Verfasst: Di 16.11.10 18:15
|
|
|