Ich konvertiere eine .txt-Datei in .bmp (image). Diese .txt-Datei kann auch Wörter in verschiedenen Sprachen enthalten. Wenn ich es mit BufferedImage von Java umwandle, konvertiert es die englischen Wörter richtig, aber nicht das Wort der anderen Sprache, das Bild zeigt das Sonderzeichen für die anderen Sprachwörter. Wie kann ich meinen Code aktivieren, um .txt-Datei in .bmp (Bild) genau zu konvertieren?Aktivieren Sie Java, um verschiedene Sprachen zu unterstützen, während die .txt-Datei in .bmp (Bild) konvertiert wird
Meine .txt Datei
SBI Bank | स्टेट बँक ऑफ इंडिया Datum | तारीख Zeit | वेळ Demo | डेमो Receipt | पावती Gesamt | एकूण Betrag | रक्कम Hinterlegt | जमा
** Mein Code **
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.imageio.ImageIO;
public class TextToGraphics {
public static void main(String[] args) {
try {
int imgWid = 300;
int imgHei = 300;
String text = "Hello\nlklkj";
String storeData = "";
String data = "";
File f = new File("/home/vipul/Desktop/123.txt");
BufferedReader br = new BufferedReader(new FileReader(f));
int nextLinePosition=100;
int fontSize = 24;
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_3BYTE_BGR);
Graphics2D g2d = img.createGraphics();
Font font = new Font("Arial", Font.PLAIN, fontSize);
g2d.setFont(font);
FontMetrics fm = g2d.getFontMetrics();
int width =imgWid;
int height =imgHei;
g2d.dispose();
img = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
g2d = img.createGraphics();
g2d.setPaint(new Color(255, 255, 255));
g2d.fillRect(0, 0, img.getWidth(), img.getHeight());
System.out.println(img.getWidth() + " " + img.getHeight());
g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
g2d.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g2d.setFont(font);
fm = g2d.getFontMetrics();
g2d.setColor(Color.BLACK);
while ((data = br.readLine()) != null) {
g2d.drawString(data, 0, nextLinePosition);
nextLinePosition=nextLinePosition+fontSize;
}
g2d.dispose();
ImageIO.write(img, "bmp", new File("/home/vipul/Desktop/123.bmp"));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Gibt es eine Option, dass ich die verschiedenen Sprachwörter im Bild drucken kann, indem ich Änderungen im Code vornimmt oder ich muss jede Schriftartunterstützung aktivieren?
Bitte um Rat. Vielen Dank im Voraus !!
Wie lautet die Codierung Ihrer Textdatei? Da Ihr Lesecode keine Codierung angibt, verwendet er die Standardcodierung des Systems, die möglicherweise nicht mit Ihrer Datei übereinstimmt. Und ja, Sie sollten auch sicherstellen, dass die verwendete Schriftart Zeichen für die von Ihnen verwendeten Zeichen enthält. – haraldK