在Java中用轮廓绘制字符串的更好方法吗?

我需要在Graphics从图像获得的对象上绘制带有黑色轮廓的白色文本。我首先用黑色绘制相同的文本4次(左右移动一个像素),然后使用白色绘制一次。但是,如果轮廓需要超过1px宽,这将无法很好地工作,并且确实看起来像是hack。有一个更好的方法吗?


final BufferedImage image = ImageIO.read(new File("./test.jpg"));


Graphics g = image.getGraphics();

g.setFont(g.getFont().deriveFont(45F));


// coordinates

int x = 100;

int y = 100;


String text = "Hello world";


g.setColor(Color.black);

g.drawString(text, x + 1, y - 1);

g.drawString(text, x + 1, y + 1);

g.drawString(text, x - 1, y - 1);

g.drawString(text, x - 1, y + 1);


g.setColor(Color.white);

g.drawString(text, x, y);

http://img1.mukewang.com/60adae3d0001fb4406570357.jpg

猛跑小猪
浏览 144回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java