1.文字压缩显示
参照java自带的demo下的jfc/java2d的ColorConvert,做了简单的修改。文字压缩显示的思路是将图片的宽度设为期望的宽度即可
public class ColorConvert extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Dimension d = getSize();
render(d.width, d.height / 2, (Graphics2D) g);
}
public void render(int w, int h, Graphics2D g2) {
BufferedImage srcImg =
new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D imageG2 = srcImg.createGraphics();
//设置白底黑字
imageG2.setBackground(Color.WHITE);
imageG2.clearRect(0, 0, w, h);
imageG2.setColor(Color.BLACK);
String text = "标题:订货单位";
Font font = new Font("宋体", Font.BOLD, 28);
FontRenderContext frc = g2.getFontRenderContext();
TextLayout tl = new TextLayout(text, font, frc);
tl.draw(imageG2, 50, 50);
//文字的宽度将压缩一半显示
g2.drawImage(srcImg, 0, 0, srcImg.getWidth()/2, srcImg.getHeight(), null);
//文字正常显示
g2.drawImage(srcImg, 0, srcImg.getHeight(), srcImg.getWidth(), srcImg.getHeight(), null);
}
public static void main(String s[]) {
JFrame f = new JFrame();
f.setSize(400, 500);
f.getContentPane().add(new ColorConvert());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
2.空心字
public class TestPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
tt(g);
}
private void tt(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
java.awt.font.FontRenderContext frc = g2.getFontRenderContext();
java.awt.Font f = new java.awt.Font("宋体", java.awt.Font.PLAIN, 80);
java.awt.font.TextLayout tl = new java.awt.font.TextLayout("i序号_i", f, frc);
AffineTransform translateInstance = AffineTransform.getTranslateInstance(1, 200);
java.awt.Shape sha = tl.getOutline(translateInstance);
g2.setColor(java.awt.Color.BLUE);
g2.draw(sha);
//g2.fill(sha);//如果去掉这行就是空心字了
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.getContentPane().add(new TestPanel());
f.setSize(400, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
分享到:
相关推荐
例如,要绘制一个经过旋转的图形,可以先创建`AffineTransform`对象,设置旋转角度,然后将其应用到`Graphics2D`对象,最后绘制图形。 总之,Java的Graphics2D类提供了丰富的绘图属性,使得开发者能够创建出富有...
Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用Java Graphics2D实现文字和图片水印,以及如何在四个角落添加水印。 首先,我们要导入必要的Java...
4. 使用Graphics2D对象的draw()或fill()方法来绘制图形,如`g_2d.fill(arc);` 在实际应用中,Graphics2D的强大功能还体现在它可以与其他Java 2D API结合使用,如Shape接口、Paint接口和Font类,以实现更复杂的图形...
- **使用Graphics2D绘制图形**:支持更复杂的形状,如`GradientPaint`, `BasicStroke`, `TexturePaint`, `RectangularShape`, `GeneralPath`等。 Java2D API中的关键类和接口包括`Color`, `Font`, `FontMetrics`, `...
Java中的Graphics2D API是Java 2D图形库的核心部分,它提供了丰富的功能来绘制复杂的二维图形和文本。在Java.awt.geom包中,有一系列的类用于创建和操作各种几何图形,包括直线、矩形、圆角矩形、椭圆、圆弧、二次...
在Java图形处理中,`Graphics2D`是用于绘制2D图形的主要类,它提供了丰富的功能来绘制各种形状,包括直线。在Java中,直线的绘制主要通过`java.awt.geom`包中的`Line2D`类实现。`Line2D`是一个抽象基类,提供了多种...
抽象类通常包含了一些通用的方法,如`draw(Graphics2D g)`,用于在给定的`Graphics2D`上下文中绘制形状,以及可能的`getBounds()`方法,用于获取图形的边界矩形。子类可以继承`MyShape`,并覆盖或实现特定的形状特性...
在Java编程语言中,`Graphics2D`是`Graphics`类的一个子类,它提供了更高级别的绘图功能,包括绘制复杂形状、设置渲染属性以及进行颜色渐变等。在这个实例中,我们将深入探讨如何使用`Graphics2D`来绘制矩形,并实现...
本教程将详细解析如何使用Qt 5.14.2版本中的Graphics View来绘制图形,这对于初学者来说是一个很好的起点。 一、Graphics View框架简介 Graphics View框架是Qt库的一部分,它提供了可缩放、可滚动的视图,以及一...
在Java编程领域,Graphics2D是一个强大的二维图形绘制API,它是AWT(Abstract Window Toolkit)的一部分,用于在Java应用程序中创建和操作复杂的图形。在"Graphics2D.rar_2d路径_graphics2d"这个压缩包中,我们关注...
// 绘制图形到imgG2d imgG2d.dispose(); File outputfile = new File("output.png"); ImageIO.write(image, "PNG", outputfile); ``` 在这个项目"java绘制复杂图形并输出图片"中,可能包含了一个名为`capMainboard...
在C#编程中,`Graphics`类是GDI+(Graphics Device Interface Plus)的一部分,用于在屏幕上绘制图形、文本和其他视觉元素。当我们需要在屏幕上输出文本,并且希望控制字符之间的间距时,`Graphics`类提供了丰富的...
`System.Drawing.Graphics`是.NET Framework提供的类,用于在各种图形设备上进行绘制,包括屏幕、打印机和图像。它提供了丰富的绘图方法,如`DrawLine`、`FillRectangle`和`DrawString`等,使我们能够创建复杂的...
在Java编程语言中,Graphics2D是一个强大的二维图形绘制接口,它是AWT(Abstract Window Toolkit)包中的核心组件。Graphics2D提供了丰富的功能,可以用来创建复杂的矢量图形、文字、图像以及各种形状,比如线条、...
用户可以自由地在画布上绘制图形,并能够保存和加载作品。此外,高级的画图板可能还支持图层管理、滤镜效果、图像导入导出等特性。 在“源码”这个标签下,我们可以推测这篇博文可能讨论了画图板的软件开发过程,...
Graphics2D g2D = (Graphics2D)g; //获取图形环境 g2D.draw(gPath); //绘制路径 } public static void main(String[] args) { new IrregularShapeDemo(); } protected void ...
首先,`Graphics2D`是Java AWT(Abstract Window Toolkit)库中的一个高级图形绘制接口,它扩展了`Graphics`类,提供了更多功能,如矢量绘图、抗锯齿、平滑颜色渐变等。要向图片写入汉字,我们需要创建一个`Graphics...
Java中的Graphics2D类是Java 2D API的核心组件,它是Graphics类的子类,提供了更为复杂的二维图形绘制和操作功能。Graphics2D类的主要特点在于它的强大绘图属性,如stroke、paint、transform和clip,这些属性允许...
Quartz2D是iOS开发中用于图形绘制的重要框架,它基于Core Graphics库,提供了一组低级别的2D绘图API,让开发者能够精确地控制图形的每一个像素。在这个主题中,我们将深入探讨如何使用Quartz2D来绘制一个复杂的图形...
在Java编程中,Graphics2D是一个强大的绘图接口,它扩展了Graphics接口,提供了更丰富的图形绘制功能。Graphics2D可以用于创建复杂的图形、图表、流程图等,它支持矢量图形,这意味着图像的大小可以无限放大而不会...