用Graphics2D配合BufferedImage绘制与输出一个饼状图

用Graphics2D配合BufferedImage绘制与输出一个饼状图

链接: 参考https://www.jianshu.com/p/97e3f0a08c6c.

graphics2d api整理(列举一些经常使用的)

画板画笔设置

/**
 * 创建画板
 */
 public Graphics2D createGraphics();
/**
 * 渲染效果配置
 */
 public abstract void setRenderingHint(Key hintKey, Object hintValue);
/**
 * 设置画笔颜色
 */
public abstract void setPaint( Paint paint );
/**
 * 设置文字样式
 */
public abstract void setFont(Font font);

画图

/**
 * 往画板上填充图片,observer一般设置为null
 */
public abstract boolean drawImage(Image img, int x, int y,
                                      ImageObserver observer);
/**
 * 往画板上写字
 */
public abstract void drawString(String str, int x, int y);
/**
 * 画矩形
 */
public void drawRect(int x, int y, int width, int height);
/**
 * 填充矩形
 */
public abstract void fillRect(int x, int y, int width, int height);
/**
 * 画圆弧 startAngle=90时指向北方,逆时针方向画线
 */
public abstract void drawArc(int x, int y, int width, int height,
                                 int startAngle, int arcAngle);
/**
 * 填充扇形 startAngle=90时指向北方,逆时针方向填充
 */
public abstract void fillArc(int x, int y, int width, int height,
                                 int startAngle, int arcAngle);
/**
 * 画椭圆 width = height时为圆
 */
public abstract void drawOval(int x, int y, int width, int height);
/**
 * 填充椭圆
 */
public abstract void fillOval(int x, int y, int width, int height);

画圆案例

package cn;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class HE {
     

    private static final String TEMPLATE_PATH = "未命名.jpg";
    private static final String STORE_PATH = "未命名_副本.jpg";

    public static void main(String[] args) throws IOException {
     

            long start = System.currentTimeMillis();

            BufferedImage image = ImageIO.read(new File(TEMPLATE_PATH));//读取图片
            // create graphics
            Graphics2D graphics =image.createGraphics();//把图片文件跟Graphics2D的对象对接起来

            // set graphics profile
            graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
            graphics.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR);
            graphics.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_QUALITY);
            graphics.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);

            // draw circular
            graphics.setPaint(Color.BLUE);
            graphics.drawArc(200,200,200,200,90,450-30);
            graphics.fillArc(200,200,200,200,90,450-30);

            // draw sector
            graphics.setPaint(Color.RED);
            graphics.drawArc(200,200,200,200,90-130,30);//边框上色
            graphics.fillArc(200,200,200,200,90-130,30);


            // store and end
            graphics.dispose();
            ImageIO.write(image, "JPG", new File(STORE_PATH));//输出图片

            System.out.println(System.currentTimeMillis()-start);


    }
}

你可能感兴趣的:(java,util,Graphics2D)