`
openstudy
  • 浏览: 233026 次
  • 性别: 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);
}
}
分享到:
评论

相关推荐

    Quartz2D绘制五角星

    在IOS中使用quartz2d绘制一个比较复杂的图形—五角星

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

    使用Java Graphics2D及相关类绘制复杂图形并输出图片文件到指定位置!

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

      Graphics2D g2D = (Graphics2D)g; //获取图形环境   g2D.draw(gPath); //绘制路径   }   public static void main(String[] args) {   new IrregularShapeDemo();   }   protected void ...

    JFreeSVG:Java的快速轻量级SVGGraphics2D实现。-开源

    JFreeSVG是Java(tm)平台的矢量图形库,允许您使用标准Java2D绘图API(Graphics2D)生成SVG格式的内容。 JFreeSVG重量轻,速度快,除了Java运行时(1.6或更高版本)外没有其他依赖项。

    Java绘制图形和线段(实线和虚线).rar

    Java绘制图形和线段,绘制2D图形、设置绘制线条的颜色,用新的画刷绘制虚线,可以绘制实线和曲线,绘制颜色为白色,一个JAVA图形绘图的实例程序,以下代码仅供参考:  public LineDemo(){   super("实线与虚线"); ...

    Java绘图:绘制虚线与实线.rar

      Graphics2D g2=(Graphics2D)g; //得到2D图形   Dimension dim = this.getSize(); //得到组件尺寸   g2.setColor(Color.white); //设置绘制颜色为白色   g2.fillRect(0, 0, dim.width, dim.height); //填充...

    qt新的绘制2D图形框架

    qt新的绘制2D图形框架,取代QT3中的Canvas模块。GraphicsView框架实现了模型-视图结构的图形管理,能对大量图元进行管理,支持碰撞检测,坐标变换和图元组等多种方便的功能。

    Shapes2D:在MonoGameXNA中绘制2D几何图形,包括诸如线和多边形之类的图元

    Shapes2D 在MonoGame / XNA中绘制2D几何图形,包括诸如线和多边形之类的图元。样品这些样本包含在源中。如何在网格中绘制简单形状的示例。 您可以在示例代码中轻松更改比例,网格类型(三角形,正方形,六边形)和...

    PDEGraphics2D:Java AWT / Swing绘画调用的输出处理脚本-开源

    若要创建PDEGraphics2D实例,请向构造函数传递标准Graphics2D对象的实例以及要绘制的画布的大小:PDEGraphics2D g =新的PDEGraphics2D(Graphics2D g,int w,int h)或PDEGraphics2D g =新的PDEGraphics2D...

    Programming with Quartz 2D and PDF Graphics in Mac OS X .pdf

    Programming with Quartz 2D and PDF Graphics in Mac OS X 一本详细介绍如何在MAC系统和IOS系统 绘制2D图形和生成PDF的电子资料,非常有用,值得收藏。

    Android学习教程之2D绘图基础及绘制太极图

    前言 ...Canvas即画布,我们需要做的就是使用之前设置好的Paint来绘制图形。系统通过 Canvas 为我们提供了一些基础的绘图 API :  1、canvas.drawPoint(float x, float y, @NonNull Paint paint);

    java生成中间带logo的二维码图片.pdf

    Graphics2D类是一个Java类,用于在图像上绘制图形。该类提供了多种方法来绘制图形,例如绘制矩形、圆形、线条等。在生成二维码图片时,需要使用Graphics2D类来绘制二维码。 知识点4:二维码的生成 二维码是一种用于...

    Java绘制不规则图形的源代码.rar

    Java绘制不规则图形的源代码,类似于一个Java小画板,可以画出一些基于线条的图形,比如曲线,直线,还可用来写字,示例截图如上图所示。以下是相关源代码:  protected void processMouseEvent(MouseEvent e) { //...

    citro2d:使用Nintendo 3DS的PICA200 GPU绘制2D图形的库

    citro2d:使用Nintendo 3DS的PICA200 GPU绘制2D图形的库

    Java图形填充实例.rar

     Graphics2D g2D = (Graphics2D)g;  setBackground(Color.white);  setForeground(Color.black);  int charH = 16; //最大字符高度  int gridW = getWidth() / 5; //绘图网格宽度  int gridH = getHeight...

    Java画虚线与画实线绘图实例代码.rar

     Graphics2D g2=(Graphics2D)g; //得到2D图形  Dimension dim = this.getSize(); //得到组件尺寸  g2.setColor(Color.white); //设置绘制颜色为白色  g2.fillRect(0, 0, dim.width, dim.height); //填充整个组件...

    绘制几何图形

    完整的android工程,介绍绘制带有渐变色的几何图形,主要使用graphics类

    java飞机大战心得体会5篇.docx

    Graphics 类支持绘制图形主要包括文本、图像、2D 几何图形等。Graphics 类没有构造方式,猎取对象的途径有三种: Canvas 类中的 paint 方法、GameCanvas 类中的 getGraphics 方法、通过 Graphics 的静态方法。 ...

    piet:2D图形的抽象

    此存储库包含用于2D图形绘制的API。 在此阐述了创建此板条箱的动机。 理想情况下,它将成为帮助跨平台的一层。 此存储库的结构为核心API板条箱,“ piet”和每个后端的单独板条箱。 这种结构的一个动机是,可以在...

    zrender:一个轻量级的图形库,为Apache ECharts提供2D绘制

    ZRender 一个轻量级的图形库,可为提供2d绘制。文献资料执照BSD 3条款许可百度公司(c)2017版权所有。保留所有权利。 如果满足以下条件,则允许以源代码和二进制形式进行重新分发和使用,无论是否经过修改,都可以...

Global site tag (gtag.js) - Google Analytics