Stringtext mit BufferedImage Textur.

Status
Nicht offen für weitere Antworten.

radiac

Bekanntes Mitglied
Hallo Leute,


ich habe mal versucht ein Stringtext zeichnen zu lassen und dazu ein BufferedImage als Textur.
Funktionierte irgendwie nicht :).
Normale paints funktionieren.

Weis jemand, ob sowas überhaupt möglich ist?
Wenn ja, gibts dafür ein Beispiel???


Vielen Dank

Radiac
 

Steev

Bekanntes Mitglied
ich habe mal versucht ein Stringtext zeichnen zu lassen und dazu ein BufferedImage als Textur.
Funktionierte irgendwie nicht :).

Ich wiederhole mal kurz:

Du willst einen String zeichnen und dafür eine Textur verwenden?

[Java]
...
private TexturePaint texture = new TexturePaint(yourImage, yourAnchor);
...

public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(texture);
g2.drawString(0, 0, yourString);
}[/Java]

TexturePaint (Java 2 Platform SE v1.4.2)
 
Zuletzt bearbeitet:

radiac

Bekanntes Mitglied
Hi Steev,

ich will ein String, anstatt mit einer g.setColor(Color c) mit einem Bild füllen.
Das Bild soll natürlich nur da zu sehen sein, wo auch die Buchstaben angezeigt werden.

Java:
Graphics2D g2d = (Graphics2D) g; 
      BufferedImage bi = new BufferedImage (5,5,BufferedImage.TYPE_INT_RGB);
      Graphics2D textur = bi.createGraphics();

      // Füllen des BuffImage mit Muster

      Rectangle r = new Rectangle (0,0,5,5);
      TexturePaint tb = new TexturePaint(bi,r);
      g2d.setFont(new Font("Arial",Font.BOLD,14));
      g2d.drawString("TEXTUR",10,10);

Hier wird der String mit bi gefüllt.
Jetzt will ich aber anstatt RGB Farben ein Bild da reinladen.

Meine Frage ist nun ob das überhaupt möglich ist. Ich hab es nicht hinbekommen :)
 

madboy

Top Contributor
Ich weiß nicht, ob das der optimale Weg ist, aber funktionieren sollte es:
Male zwei Bilder. Eins mit der Textur (Bild1), eins mit weißem Text auf schwarzem Grund (Bild2).
Such dir eine Operation auf zwei Bildern, mit der du die Bilder "verknüpfen" kannst, sodass überall wo im Text-Bild weiß ist, das Originalbild stehen bleibt, sonst nicht.

Naiver Ansatz:
for alle Pixel aus Bild1
{
if(Bild2.Pixel == schwarz)
{
Bild1.setPixel = schwarz
}
}
 

Steev

Bekanntes Mitglied
Weis niemand was?

Doch, hier weis jemand was :D

Die Lösung, die ich oben gepostet habe funktioniert doch einwandfrei...

Hier mal ein vollständiges Beispiel (Achtung, nur schnell gecodet...)

[Java]import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.TexturePaint;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TexturePaintTest extends JPanel {

public static void main(String[] args) {
JFrame frame = new JFrame();

frame.setTitle("TexturePaintTest#1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
frame.setSize(800, 600);
frame.setLocation((d.width - frame.getWidth()) / 2, (d.height - frame.getHeight()) / 2);

frame.setLayout(new BorderLayout());
frame.add(new TexturePaintTest());

frame.setVisible(true);
}

private static final long serialVersionUID = 6796947238573004947L;

private BufferedImage img = null;
private TexturePaint texture = null;
private Font font = null;

public TexturePaintTest() {}

private void init() {
try {
URL url = getClass().getResource("texture.png");
img = ImageIO.read(url);

Rectangle anchor = new Rectangle(img.getWidth(), img.getHeight());
texture = new TexturePaint(img, anchor);

font = new Font("Arial Black", Font.BOLD, 120);
} catch (Exception e) {
e.printStackTrace();
}
}

@Override
public void paint(Graphics g) {
if (img == null)
init();

Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setPaint(texture);
g2.setFont(font);
g2.drawString("String", 100, 100);
}
}
[/Java]
 

radiac

Bekanntes Mitglied
Jo, jetzt klappt es auch :D Super Sache :p


Danke Steev :). Das erspart mir jetzt massig Zeit :p
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B BufferedImage Position Spiele- und Multimedia-Programmierung 8
B BufferStrategy zu BufferedImage? Irgendwie? Spiele- und Multimedia-Programmierung 2
D getsubimage aus BufferedImage und Rueckwandlung in ein ImagePlus bild Spiele- und Multimedia-Programmierung 0
V BufferedImage[] aus anderer Classe auslesen Spiele- und Multimedia-Programmierung 2
F [JMyron] Bild von int[] zu BufferedImage Spiele- und Multimedia-Programmierung 2
Q BufferedImage vs. Heap Space ‒ Warum wird der Speicher nicht freigegeben? Spiele- und Multimedia-Programmierung 6
M Performance Problem bei BufferedImage Spiele- und Multimedia-Programmierung 7
R BufferedImage > Integer.MAX_VALUE Spiele- und Multimedia-Programmierung 9
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
G BufferedImage -> Farbe wechselt willkürlich Spiele- und Multimedia-Programmierung 15
P int-Array zu BufferedImage (performance?) Spiele- und Multimedia-Programmierung 14
agentone BufferedImage transparent löschen Spiele- und Multimedia-Programmierung 12
kowa BufferedImage und Antialias Spiele- und Multimedia-Programmierung 2
T BufferedImage#setRGB #getRGB zu langsam Spiele- und Multimedia-Programmierung 4
J Zeichnen in BufferedImage und dieses in Datei speichern Spiele- und Multimedia-Programmierung 2
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
Z Transparenz in BufferedImage Spiele- und Multimedia-Programmierung 8
Z JME - Rendering in BufferedImage Spiele- und Multimedia-Programmierung 14
A Bildbereich als BufferedImage Spiele- und Multimedia-Programmierung 3
M BufferedImage blass machen Spiele- und Multimedia-Programmierung 5
Lulumann6 BufferedImage in VolatileImage casten Spiele- und Multimedia-Programmierung 10
F BufferedImage verursacht OutOfMemoryError Spiele- und Multimedia-Programmierung 11
P Rotation von BufferedImage (Affine Transformation) Spiele- und Multimedia-Programmierung 7
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
J Quadrat Textur lädt als Dreieck Spiele- und Multimedia-Programmierung 3
L Textur färben Spiele- und Multimedia-Programmierung 1
T [LWJGL] Textur / File wieder freigeben Spiele- und Multimedia-Programmierung 4
S [LWJGL] Zweimal selbe Textur trotz unterschiedlicher IDs Spiele- und Multimedia-Programmierung 3
R LWJGL: Textur -> unsichtbare Stellen, wie erzeugen? Spiele- und Multimedia-Programmierung 4
F LWJGL: Textur ändern mit GL11.readPixels Spiele- und Multimedia-Programmierung 5
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
J Java3D - Textur laden geht nicht Spiele- und Multimedia-Programmierung 9
Creylon [LWJGL] Textur wird falsch angezeigt Spiele- und Multimedia-Programmierung 12
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
S OpenGL Textur unsauber Spiele- und Multimedia-Programmierung 2
R OpenGL Textur mit verschiedenen bit depths Spiele- und Multimedia-Programmierung 6
A OpenGL Textur und nicht Textur Spiele- und Multimedia-Programmierung 2
T JMonkey Textur nicht ganz angezeigt Spiele- und Multimedia-Programmierung 3
X JOGL - Textur auf Quad verzerrt Spiele- und Multimedia-Programmierung 2
M Wavefront Object Loader zeigt nur eine Textur an. Spiele- und Multimedia-Programmierung 7
P Java3D Textur verzerrt Spiele- und Multimedia-Programmierung 3
F Kleine GL Texturen auf grosse GL Textur kopieren? Spiele- und Multimedia-Programmierung 24
D Jogl:Textur auf GLUquadric wird vertikal spiegelverkehrt dargestellt Spiele- und Multimedia-Programmierung 2
F 2D Textur auf dem Display 2x so groß wie angeben? Spiele- und Multimedia-Programmierung 4
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
E JPCT textur problem Spiele- und Multimedia-Programmierung 8
D Java3D Textur Problem Spiele- und Multimedia-Programmierung 9
G Textur in Java3D Spiele- und Multimedia-Programmierung 3
S KameraBild als Textur? Spiele- und Multimedia-Programmierung 4
E Textur-Problem Spiele- und Multimedia-Programmierung 2
A "Textur-Achse" drehen. Spiele- und Multimedia-Programmierung 2
G Textur auf Box jede Sekunde erneuern Spiele- und Multimedia-Programmierung 2
S Zylinder mit Textur erzeugt out of memory :( Spiele- und Multimedia-Programmierung 3
G Textur laden auf ein eingelesenes 3D Objekt Spiele- und Multimedia-Programmierung 4
M Problem mit Textur Spiele- und Multimedia-Programmierung 4
J Java3D: Textur kacheln? Spiele- und Multimedia-Programmierung 2
D TextureLoader - Textur von Url laden Spiele- und Multimedia-Programmierung 2
S Bump Mapping (Relief-Textur) in Java3D Spiele- und Multimedia-Programmierung 3
N Textur - Koordinaten Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen

Neue Themen


Oben