-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)。 –