2D-Grafik String übergeben, PNG soll rauskommen

pro_evo

Aktives Mitglied
Hi zusammen,


ich würde gerne eine Klasse/Methode programmieren, der man einen String übergibt und die daraus ein "simples" Bild (PNG Datei) erstellt, das lediglich den Schriftzug enthält.
Schriftart, Schriftgröße, Farbe soll fest in der Methode festgelegt sein. Ebenso der Pfad, wo die PNG-Datei gespeichert wird.
Nur die Breite des Bildes müsste sich nat. an der Stringlänge orientieren.

Mit welchen Methoden mache ich das?
Kenne mich mit Methoden zu Bilderstellung gar nicht aus.
Nutze Java 1.6.

Im Voraus vielen Dank!

VG
 

Marco13

Top Contributor
BufferedImage image = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setFont(...);
g.setColor(...);
g.drawString("Text",10,20);
g.dispose();
ImageIO.... (zum Speichern)

EDIT: Bildbreite rausfinden: Klasse FontMetrics, getStringBounds oder so..
 

Andi_CH

Top Contributor
Graphics.drawString() tönt vielversprechend :
Renders the text of the specified iterator applying its attributes in accordance with the specification of the TextAttribute class.

einen Implementation davon ist Graphics2D.drawString()?
 

pro_evo

Aktives Mitglied
Hi,

also das ist wirklich einfach, bin begeistert :)

Eine Frage allerdings:

Die Qualität der Schrift im fertigen Bild ist nicht so der Hit, also z.B. deutlich pixeligere Ränder als wenn ich das Bild mit Gimp o.Ä. mache. :(
Weiß evtl. jmd. woran das liegt? Ist ja ne ganz normale Schriftart ... kann man da noch was drehen?

Anbei noch die Methoden, wie ich sie nun nutze:

Java:
			bufferedImage = new BufferedImage(imageWidth, height,BufferedImage.TYPE_INT_RGB);  
			Graphics2D g = bufferedImage.createGraphics(); 
			g.setFont(new Font(font, Font.PLAIN, height/2)); 

			//drawing the desired logo
			g.drawImage(logoImage, logoX, logoY, null);
			
			//drawing the desired text
			g.drawString(text, textX, textY);

			try {
				ImageIO.write(bufferedImage, "PNG", new File(outputFileName));
				System.out.println("\n** Info: "+outputFileName+ " successfully created.");
			}
			catch (IOException e) {
				e.printStackTrace();
			}
			g.dispose();
Danke im Voraus.
vg
 
Zuletzt bearbeitet:

pro_evo

Aktives Mitglied
Super Danke!
Das war ein klasse Tipp, hatte genau auf soetwas gehofft.

Leider sieht das fertige Bild mit allen 4 EInstellungen exakt gleich aus?!

Habe das hier nach g.setFont(...) eingefügt ...

Java:
g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                    RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

Und dann alle 4 durchprobiert:
VALUE_TEXT_ANTIALIAS_OFF
VALUE_TEXT_ANTIALIAS_ON
VALUE_TEXT_ANTIALIAS_GASP
VALUE_TEXT_ANTIALIAS_LCD_HRGB

komisch ...
 
S

SlaterB

Gast
bei mir gibt es feine Unterschiede, ich habe aber keine Lust, in Vorleistung selber die Bilder zu posten,
mache du das zunächst ;) , poste die ANTIALIAS_ON-Variante vs. gar kein Hint,
dazu am besten kompletteren Quellcode, mit deinen Variablen, mit der Schriftart, mit dem Text usw.,
ich musste das bei mir alles mit eigenen Beispielwerten auffüllen...,
das Logo dürfte erstmal nicht wichtig sein, weglassen

und poste vielleicht auch irgendein Bild auf der Welt mit Schrift, wie du sie gerne hättest
 
Zuletzt bearbeitet von einem Moderator:

pro_evo

Aktives Mitglied
Danke schonmal.

Ich merke gerade ich hab ein anderes Problem, weshalb alle 4 Varianten bei mir genau gleich aussehen ... eclipse ignoriert alle meine Änderungen ...

Der nutzt bei run immer irgendne alte Version, habe z.B. Ausgaben eingefügt, die kommen müssten, kommen aber nicht.

Wenn ich was aendere und run drücke, kommt aber richtigerweise der eclipse pop-up ich soll erst speichern ... hmmm

edit: habe ein rotes Ausrufezeichen am Projekt sonst aber keine Fehler ... mal google anwerfen ...
 
Zuletzt bearbeitet:

pro_evo

Aktives Mitglied
Problem gelöst, war irgendwas wg. maven, weiß auch ned muss immer erst mvn compile eingeben in die console, dann zieht eclipse das neuste an.


Jetzt haben auch die Antialising Einstellungen eine Auswirkung, a Traum :)
Sieht klasse aus.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Swing Eingabe von JTextField in einen String übergeben. AWT, Swing, JavaFX & SWT 3
B ActionEvent Dateipfad als String übergeben AWT, Swing, JavaFX & SWT 11
S String an eine andere Klasse im anderem package übergeben AWT, Swing, JavaFX & SWT 3
B JTable String übergeben AWT, Swing, JavaFX & SWT 3
A String aus einem JTextField an ein JLabel übergeben AWT, Swing, JavaFX & SWT 10
S JEditorPane setText() Problem mit String übergeben AWT, Swing, JavaFX & SWT 3
K String übergeben AWT, Swing, JavaFX & SWT 3
C Swing Übergabe von String an JLabel AWT, Swing, JavaFX & SWT 9
2 JavaFX die ChoiceBox leitet den String nicht weiter oder es komm zu einem NullPointer AWT, Swing, JavaFX & SWT 8
officialmaxl JavaFX Textfield getTextfield() in String speichern AWT, Swing, JavaFX & SWT 1
H String zu int/long AWT, Swing, JavaFX & SWT 8
D String als Textdatei in ausgewähltem Speicherplatz speichern AWT, Swing, JavaFX & SWT 32
R Swing Ein gezeichneten String aus dem JFrame löschen AWT, Swing, JavaFX & SWT 5
H String teilen, damit bei JLabel keine Punkte am Ende angezeigt werden AWT, Swing, JavaFX & SWT 4
J SWT Search string highlite AWT, Swing, JavaFX & SWT 5
M JavaFX String aus TextField reagiert nicht wie erwartet AWT, Swing, JavaFX & SWT 3
F RGB-Werte aus einem String einlesen AWT, Swing, JavaFX & SWT 26
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
Y Darstellung und MouseHover bei bestimmten Wörtern in einem String AWT, Swing, JavaFX & SWT 2
X Zeilen aus einer Textdatei einzelnd als String abrufen AWT, Swing, JavaFX & SWT 8
KilledByCheese Event Handling Vom ActionEvent auf String zugreifen - genaueres in der Beschreibung AWT, Swing, JavaFX & SWT 3
T replace string AWT, Swing, JavaFX & SWT 1
D String zu StringProperty Konvertieren AWT, Swing, JavaFX & SWT 4
T jTextField mit String befüllen AWT, Swing, JavaFX & SWT 1
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
P DefaultStyledDocument eingegebenen String durchsuchen und bestimmte Sachen einfärben AWT, Swing, JavaFX & SWT 1
B 2D-Grafik String drehen/platzieren/formatieren in bestimmten Bereich AWT, Swing, JavaFX & SWT 1
A Swing Logikaufgabe: Zeilenanzahl einer JTable mit 3d String dynamisch anpassen AWT, Swing, JavaFX & SWT 2
S XML Output String Format AWT, Swing, JavaFX & SWT 2
R Swing JTextField getText() liefert leeren String AWT, Swing, JavaFX & SWT 6
P Swing String mit unterschiedlichen Formaten zusammenbauen AWT, Swing, JavaFX & SWT 14
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
J 2D-Grafik String aus array wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
L Swing JToogleButton Vordergrundfarbe bei HTML String AWT, Swing, JavaFX & SWT 4
T Swing JProgressBar mit String unschön AWT, Swing, JavaFX & SWT 5
M Swing String zerlegen AWT, Swing, JavaFX & SWT 2
J Swing String soll als Variable dienen AWT, Swing, JavaFX & SWT 11
A Text (String) zu einer Box hinzufügen AWT, Swing, JavaFX & SWT 16
D textfeld string zu float AWT, Swing, JavaFX & SWT 5
B Color String Code AWT, Swing, JavaFX & SWT 3
C JTextArea scrollt bei append(String) aus Threads nicht ans Ende AWT, Swing, JavaFX & SWT 7
E selektierter Datensatz in JList als String Datentyp AWT, Swing, JavaFX & SWT 23
S String is null Fehler AWT, Swing, JavaFX & SWT 2
M SomeClass.class.getResourceAsStream(String filename) funktioniert nicht in jar) AWT, Swing, JavaFX & SWT 32
B JTable Component mit String? AWT, Swing, JavaFX & SWT 4
S String Array Ausgabe im JLabel ??? AWT, Swing, JavaFX & SWT 8
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
L SWT Text SelectionText ersetzen durch anderen String AWT, Swing, JavaFX & SWT 6
B Color.BLUE in String umwandeln AWT, Swing, JavaFX & SWT 4
H String auf Knopfdruck in JPanel zeichnen. AWT, Swing, JavaFX & SWT 6
A Formatierten String ausgeben (drawString) AWT, Swing, JavaFX & SWT 5
S Swing Grundprinzip String ausgeben, aber wie? AWT, Swing, JavaFX & SWT 6
R JComboBox Ausgabe in String speichern AWT, Swing, JavaFX & SWT 3
TiME-SPLiNTER Swing JListModel: String rendern AWT, Swing, JavaFX & SWT 2
R String in JFrame ausgeben AWT, Swing, JavaFX & SWT 10
D Zwei String Attribute über eine Methode als Zeilen in einer Tabelle darstellen AWT, Swing, JavaFX & SWT 9
C Swing Text eines JButton mit String definieren? Reihenfolge? AWT, Swing, JavaFX & SWT 6
S [Button] setText("String") AWT, Swing, JavaFX & SWT 5
1 BufferedImage in byte[], dann in String und zurück AWT, Swing, JavaFX & SWT 7
I String lowercase, uppercase und umdrehen AWT, Swing, JavaFX & SWT 3
D Swing JTextField String anhängen AWT, Swing, JavaFX & SWT 7
F Swing String Array mit JTextArea anzeigen AWT, Swing, JavaFX & SWT 13
P Canvas: String wird nicht gezeichnet AWT, Swing, JavaFX & SWT 5
D SWT String aus Textfeld auslesen und in eine Tabelle speichern AWT, Swing, JavaFX & SWT 5
T SWT String mitten ins Textfeld einfügen + richtige Cursorposition AWT, Swing, JavaFX & SWT 3
T Swing Wie kann ich einen String in ein TreePath umwandeln? AWT, Swing, JavaFX & SWT 5
H String ausführen und damit weiterarbeiten AWT, Swing, JavaFX & SWT 4
radiac AWT Mausposition als String ausgeben??? AWT, Swing, JavaFX & SWT 5
N SWT Ende vom String in Text anzeigen AWT, Swing, JavaFX & SWT 5
bugmenot JTextPane String stimmt nicht mit übergebenem String überein AWT, Swing, JavaFX & SWT 9
G JTextArea: String formatieren AWT, Swing, JavaFX & SWT 2
G Ein Wort in einem String färben in einer Canvas AWT, Swing, JavaFX & SWT 10
S List<String> in JTextArea! AWT, Swing, JavaFX & SWT 4
F kleines problem beim suchen in einem String AWT, Swing, JavaFX & SWT 15
G in JTextField wie in der Console Ein String ein lesen AWT, Swing, JavaFX & SWT 8
G Date in einen String umwandeln AWT, Swing, JavaFX & SWT 4
S schauen ob ein string leer ist AWT, Swing, JavaFX & SWT 4
B JTextPane und Image importieren in HTML String. AWT, Swing, JavaFX & SWT 2
S Suchen im String-Array AWT, Swing, JavaFX & SWT 3
mabe83 Swing: jTableCellRenderer -> Klappt nur bei String-Spalte AWT, Swing, JavaFX & SWT 2
O String aus Klasse X in Klasse Y befördern AWT, Swing, JavaFX & SWT 12
M leerzeichen aus string entfernen AWT, Swing, JavaFX & SWT 3
B NullPointerException bei String vergleich AWT, Swing, JavaFX & SWT 5
T String in String [] umwandeln?? AWT, Swing, JavaFX & SWT 4
S Checkbox oder String in JTable-Spalte AWT, Swing, JavaFX & SWT 4
E Frage zum String AWT, Swing, JavaFX & SWT 6
M BufferedImage mit html interpretierten String beschriften AWT, Swing, JavaFX & SWT 3
K Choice auswahl und String in Int AWT, Swing, JavaFX & SWT 8
Y entfernten String einer JTextPane per DocumentListener AWT, Swing, JavaFX & SWT 5
C string wird mehr fach gezeichnet AWT, Swing, JavaFX & SWT 3
S String aus JTextField AWT, Swing, JavaFX & SWT 11
C string spiegeln AWT, Swing, JavaFX & SWT 14
M jEditorPane String to html AWT, Swing, JavaFX & SWT 2
S double in String umwandeln AWT, Swing, JavaFX & SWT 6
R Double in der Tabelle statt String und Integer AWT, Swing, JavaFX & SWT 3
G ActionListener zu String hinzufügen AWT, Swing, JavaFX & SWT 2
I JProgressBar String anzeigen, danach wieder normale Ansicht AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben