如何在非英语(java)的图像上绘制字符串
我想用java drawstring方法用旁遮普语言在图像上绘制一些文本。请帮助我理解,我做错了什么如何在非英语(java)的图像上绘制字符串,java,graphics,Java,Graphics,我想用java drawstring方法用旁遮普语言在图像上绘制一些文本。请帮助我理解,我做错了什么 // TODO Auto-generated method stub BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB); Graphics g = image.createGraphics(); g.setColor(Color.WHITE); g.fi
// TODO Auto-generated method stub
BufferedImage image = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics g = image.createGraphics();
g.setColor(Color.WHITE);
g.fillRect(0, 0, image.getWidth(),image.getHeight());
g.setColor(Color.BLACK);
String data="ਸਾਨੂੰ ਵੇਖ ਕੇ ਮੁਖ ਘੁਮਾ ਜਾਂਦੇ ,ਸਾਡੇ ਨਾਮ ਤੇ ਨੀਵੀਆਂ ਪਾ ਜਾਂਦੇ , ..ਪਰ ਇਕ ਗੱਲ ਤੇ ਨਾ ਚੱਲਦਾ ਜ਼ੋਰ ਉਹਨਾਂ ਦਾਕਰਦੇ ਗੱਲਾਂ ਗੈਰਾਂ ਨਾਲਤੇ ਕਸਮਾਂ ਸਾਡੇ ਨਾਂ ਦੀਆਂ ਖਾ ਜਾਂਦੇ...";
try {
Font font = Font.createFont(Font.TRUETYPE_FONT, new File("/var/gurbaniwebthick.ttf"));
font = font.deriveFont(Font.PLAIN,20);
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);
g.setFont(font);
} catch (FontFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
g.drawString(data,10, 20);
try {
ImageIO.write(image, "jpg", new File("/var/javatest/1.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
以上方法可能有效!您是否已将java文件保存在utf-8中?您是否测试过删除您引用的字体。可能是字体不是utf-8。谢谢您的帮助。当我使用unicode旁遮普字体时,问题已经解决。