`
openstudy
  • 浏览: 237123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Graphics2D绘制图形

阅读更多
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);
}
}
分享到:
评论

相关推荐

    Java中Graphics2D类的绘图属性.pdf

    例如,要绘制一个经过旋转的图形,可以先创建`AffineTransform`对象,设置旋转角度,然后将其应用到`Graphics2D`对象,最后绘制图形。 总之,Java的Graphics2D类提供了丰富的绘图属性,使得开发者能够创建出富有...

    水印 java Graphics2D实现文字图片水印

    Graphics2D是Java 2D API的一部分,它提供了丰富的绘图和图形操作功能,包括添加水印到图像。下面将详细介绍如何使用Java Graphics2D实现文字和图片水印,以及如何在四个角落添加水印。 首先,我们要导入必要的Java...

    Java中Graphics2D介绍.pdf

    4. 使用Graphics2D对象的draw()或fill()方法来绘制图形,如`g_2d.fill(arc);` 在实际应用中,Graphics2D的强大功能还体现在它可以与其他Java 2D API结合使用,如Shape接口、Paint接口和Font类,以实现更复杂的图形...

    Java程序设计:chapter08 图形和Java 2D.ppt

    - **使用Graphics2D绘制图形**:支持更复杂的形状,如`GradientPaint`, `BasicStroke`, `TexturePaint`, `RectangularShape`, `GeneralPath`等。 Java2D API中的关键类和接口包括`Color`, `Font`, `FontMetrics`, `...

    Java中Graphics2D的几何图形类.pdf

    Java中的Graphics2D API是Java 2D图形库的核心部分,它提供了丰富的功能来绘制复杂的二维图形和文本。在Java.awt.geom包中,有一系列的类用于创建和操作各种几何图形,包括直线、矩形、圆角矩形、椭圆、圆弧、二次...

    Java中Graphics2D直线实例.pdf

    在Java图形处理中,`Graphics2D`是用于绘制2D图形的主要类,它提供了丰富的功能来绘制各种形状,包括直线。在Java中,直线的绘制主要通过`java.awt.geom`包中的`Line2D`类实现。`Line2D`是一个抽象基类,提供了多种...

    Java绘制2D图形

    抽象类通常包含了一些通用的方法,如`draw(Graphics2D g)`,用于在给定的`Graphics2D`上下文中绘制形状,以及可能的`getBounds()`方法,用于获取图形的边界矩形。子类可以继承`MyShape`,并覆盖或实现特定的形状特性...

    Java中Graphics2D矩形实例.pdf

    在Java编程语言中,`Graphics2D`是`Graphics`类的一个子类,它提供了更高级别的绘图功能,包括绘制复杂形状、设置渲染属性以及进行颜色渐变等。在这个实例中,我们将深入探讨如何使用`Graphics2D`来绘制矩形,并实现...

    qt 5 使用graphicsview绘制图形的基本操作

    本教程将详细解析如何使用Qt 5.14.2版本中的Graphics View来绘制图形,这对于初学者来说是一个很好的起点。 一、Graphics View框架简介 Graphics View框架是Qt库的一部分,它提供了可缩放、可滚动的视图,以及一...

    Griphics2D.rar_2d路径_graphics2d

    在Java编程领域,Graphics2D是一个强大的二维图形绘制API,它是AWT(Abstract Window Toolkit)的一部分,用于在Java应用程序中创建和操作复杂的图形。在"Graphics2D.rar_2d路径_graphics2d"这个压缩包中,我们关注...

    java绘制复杂图形并输出图片

    // 绘制图形到imgG2d imgG2d.dispose(); File outputfile = new File("output.png"); ImageIO.write(image, "PNG", outputfile); ``` 在这个项目"java绘制复杂图形并输出图片"中,可能包含了一个名为`capMainboard...

    Graphics实现指定字符间距

    在C#编程中,`Graphics`类是GDI+(Graphics Device Interface Plus)的一部分,用于在屏幕上绘制图形、文本和其他视觉元素。当我们需要在屏幕上输出文本,并且希望控制字符之间的间距时,`Graphics`类提供了丰富的...

    在winforms使用Graphics画表格

    `System.Drawing.Graphics`是.NET Framework提供的类,用于在各种图形设备上进行绘制,包括屏幕、打印机和图像。它提供了丰富的绘图方法,如`DrawLine`、`FillRectangle`和`DrawString`等,使我们能够创建复杂的...

    taiji.rar_graphics2d_太极图

    在Java编程语言中,Graphics2D是一个强大的二维图形绘制接口,它是AWT(Abstract Window Toolkit)包中的核心组件。Graphics2D提供了丰富的功能,可以用来创建复杂的矢量图形、文字、图像以及各种形状,比如线条、...

    画图板总结

    用户可以自由地在画布上绘制图形,并能够保存和加载作品。此外,高级的画图板可能还支持图层管理、滤镜效果、图像导入导出等特性。 在“源码”这个标签下,我们可以推测这篇博文可能讨论了画图板的软件开发过程,...

    Java绘制不规则几何图形.rar

      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中的Graphics2D类是Java 2D API的核心组件,它是Graphics类的子类,提供了更为复杂的二维图形绘制和操作功能。Graphics2D类的主要特点在于它的强大绘图属性,如stroke、paint、transform和clip,这些属性允许...

    Java生成物流打印单(条形码,二维码)

    2. 使用Graphics2D绘制打印单的基本布局,如边框、标题和预留的图像位置。 3. 调用Zxing库,将物流单号转换为BitMatrix对象。 4. 将BitMatrix转换为图片,并定位在打印单的指定位置。 5. 如果需要,也可以生成条形码...

    Quartz2D绘制五角星

    Quartz2D是iOS开发中用于图形绘制的重要框架,它基于Core Graphics库,提供了一组低级别的2D绘图API,让开发者能够精确地控制图形的每一个像素。在这个主题中,我们将深入探讨如何使用Quartz2D来绘制一个复杂的图形...

Global site tag (gtag.js) - Google Analytics