-1
A
回答
2
如果你想抗锯齿的,可以强制转换图形到的Graphics2D然后使用g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
。绘制线条后可以做到这一点。
1
凯文Hikaru埃文斯上述解决方案应该工作,也许你错过了什么。
Graphics2D g2=(Graphics2D)g.create();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
g2.drawString("SCQSCQSCQ",x,y);
+0
谢谢!我只是错误地放置了抗锯齿部分。 – user958705
1
试试这个(快速,粗制滥造),适于例如..
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.font.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.imageio.ImageIO;
import java.io.File;
class PictureText {
public static BufferedImage getImage(Area textOutline) {
Rectangle bounds = textOutline.getBounds();
System.out.println(bounds);
int width = (2*(int)bounds.getX())+(int)bounds.getWidth();
int height = (2*(int)bounds.getY())+(int)bounds.getHeight();
BufferedImage bi = new BufferedImage(
width,
height,
BufferedImage.TYPE_INT_ARGB);
Color outline = new Color(0,0,0,255);
Graphics2D g = bi.createGraphics();
g.setRenderingHint(
RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g.setStroke(new BasicStroke(1.5f));
g.setColor(outline);
g.draw(textOutline);
showImage(bi);
return bi;
}
public static void showImage(Image image) {
JLabel textLabel = new JLabel(
new ImageIcon(image));
textLabel.setBackground(Color.WHITE);
textLabel.setOpaque(true);
JPanel gui = new JPanel(new GridLayout(0,1,5,5));
gui.add(textLabel);
JOptionPane.showMessageDialog(null,gui);
}
public static void main(String[] args) throws Exception {
AffineTransform shrinkTransform2 =
AffineTransform.getScaleInstance(.5,.5);
AffineTransform shrinkTransform4 =
AffineTransform.getScaleInstance(.25,.25);
final BufferedImage originalImage = new BufferedImage(
260,
50,
BufferedImage.TYPE_INT_ARGB);
GradientPaint gp = new GradientPaint(
0f,0f,Color.GRAY.brighter(),
0f,22f,Color.GRAY.brighter().brighter(),true);
Graphics2D g0 = originalImage.createGraphics();
g0.setPaint(gp);
g0.fillRect(0,0,300,100);
int width = originalImage.getWidth();
int height = originalImage.getHeight();
final BufferedImage textImage = new BufferedImage(
width,
height,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g = textImage.createGraphics();
FontRenderContext frc = g.getFontRenderContext();
Font font1 = new Font(
//"Wide Latin"
//"Pythagoras"
"Denmark"
,0,48);
GlyphVector gv1 = font1.createGlyphVector(
frc, "The quick brown fox..");
Shape shape1 = gv1.getOutline(0,0);
int y = (int)shape1.getBounds().getHeight()+2;
Shape shapea = gv1.getOutline(6,y);
Area area1 = new Area(shapea);
Area area2nd = area1.createTransformedArea(shrinkTransform2);
Area area4th = area1.createTransformedArea(shrinkTransform4);
ImageIO.write(getImage(area1),"png",new File("text-image.png"));
}
}
相关问题
- 1. 平滑的图像边缘
- 2. 如何平滑图像的锯齿边缘为直线?
- 3. 我如何平滑多分量图像的边缘?
- 4. 如何平滑绘制图像的边缘?
- 5. 如何从图像中获得的图像平滑边缘c功能
- 6. 如何通过matlab中的边缘点绘制图像的平滑边界
- 7. 平滑颜色图图像中的边缘
- 8. 如何平滑曲折线的边缘?
- 9. 如何使NCAR命令语言(NCL)的绘图边缘平滑?
- 10. 如何平滑图像的边缘从磁盘/导出到pdf(c#)
- 11. IOS平滑皮肤如何在保留边缘的同时模糊图像?
- 12. PHP:创建一个平滑的边缘圆圈,图像或字体?
- 13. 分段掩码的平滑边缘
- 14. 如何在OpenGL中创建平滑的边缘聚光灯?
- 15. 如何平滑Helix Toolkit SharpDX视口中的边缘?
- 16. 如何测量边缘检测图像边缘的长度?
- 17. 六边形的边缘在铬中不显示平滑
- 18. 如何使图像平滑地折叠?
- 19. 边缘左边的按钮VS边缘左边的文字旁边浮动的左侧图像
- 20. 如何在mxGraph边缘创建图像
- 21. 平滑图像
- 22. 如何用梯度扩散平滑滤波器使用边缘保留来模糊图像
- 23. 如何在水平中点处设置背景图像位置的左边缘
- 24. 图像边缘检测
- 25. UINavBar拉伸图像边缘
- 26. mxGraph图像节点边缘
- 27. c#在使用Kinect V2去除背景时平滑边缘
- 28. 如何平滑加载FileReference的图像?
- 29. C++中的图像边缘检测
- 30. 图像处理中的边缘检测
为了更好地帮助越早,张贴[SSCCE(http://pscode.org/sscce。 HTML)。 –