java图形处理-Java Graphics2D

Posted y酒味i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java图形处理-Java Graphics2D相关的知识,希望对你有一定的参考价值。

 

package com.mapbar.graphics;

import java.awt.Graphics2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

/**  

 * Class DrawGraphics.java 

 * Description  java2D绘制直线,矩形,椭圆,旋转图形

 * Company mapbar  

 * author Chenll 

 * Version 1.0 

 * Date 2012-7-20 下午12:06:15

 */
public class DrawGraphics{
    
    private BufferedImage image;
    
    private  Graphics2D graphics;
    
    public void init(){
         int width=480,hight=720;  
         image = new BufferedImage(width,hight,BufferedImage.TYPE_INT_RGB);  
         //获取图形上下文 
         graphics = (Graphics2D)image.getGraphics();  
    }
    
    
    /**
     * 创建一个(x1,y1)到(x2,y2)的Line2D对象
     * @throws IOException
     */
    public void drawLine() throws IOException{
         init();
         Line2D line=new Line2D.Double(2,2,300,300);
         graphics.draw(line);
         graphics.dispose();
         outImage("PNG","D:\\Line.PNG");
    }
    
    
    /**
     * 创建一个左上角坐标是(50,50),宽是300,高是400的一个矩形对象
     * @throws IOException
     */
    public void drawRect() throws IOException{
        init();
        Rectangle2D rect = new Rectangle2D.Double(50,50,400,400);
        graphics.draw(rect);
        graphics.fill(rect);
        graphics.dispose();
        outImage("PNG","D:\\Rect.PNG");
    }
    
    /**
     * 创建了一个左上角坐标是(50,50),宽是300,高是200的一个椭圆对象,如果高,宽一样,则是一个标准的圆
     * 
     * @throws IOException
     */
    public void drawEllipse() throws IOException{
        init();
        Ellipse2D ellipse=new Ellipse2D.Double(50,50,300,200);
        graphics.draw(ellipse);
        graphics.fill(ellipse);
        graphics.dispose();
        outImage("PNG","D:\\ellipse.PNG");
    } 
    
    /**
     * 输出绘制的图形
     * @param type
     * @param filePath
     * @throws IOException
     */
    public void outImage(String type,String filePath) throws IOException{
         ImageIO.write(image,type, new File(filePath));
    }
    
    public static void main(String[] args) throws IOException{
        DrawGraphics dg = new DrawGraphics();
        dg.drawLine();
        dg.drawRect();
        dg.drawEllipse();
    }
}

 

以上是关于java图形处理-Java Graphics2D的主要内容,如果未能解决你的问题,请参考以下文章

java GUI Graphics2D 绘图

Java2D / Graphics2D 性能

Java 上的 (Graphics g, Graphics2D) 问题

如何在 java 中的 Graphics2D 对象上创建事件

java使用Graphics2D图片叠加

java Graphics2D 生成图片随着字符长度变化