draw java_Java Draw

简单绘画

直线

矩形

根据矩阵画图

package com.zhoudm;

import java.awt.*;

import javax.swing.*;

public class Draw extends JFrame

{

MyPanel mp = null ;

public static void main(String[] args)

{

// TODO Auto-generated method stub

Draw qwe = new Draw();

}

public Draw()

{

mp = new MyPanel();

this.add(mp);

this.setSize(400,300);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

class MyPanel extends JPanel //我自己的面板,用于绘图和实现绘图区域

{

//覆盖JPanel的paint方法

//Graphics是绘图的重要类,可以理解成一支画笔

public void paint(Graphics g)

{

//1.调用父类函数完成初始化

super.paint(g); //这句话不能少

//System.out.println("被调用"); //证明别调用

//画圆

int [][] drawnum={{1,0,1,1},

{0,1,0,1},

{1,0,1,1},

{1,1,0,1}};

for(int i=0;i

for(int j=0;j

if(drawnum[i][j]==1){

g.drawOval(30*i+50,30*j+50,25,25);

g.setColor(Color.BLUE);

}

}

}

// g.drawOval(10, 10, 30, 30);

//画直线

// g.drawLine(20, 30, 20, 80);

//画出矩形边框

// g.drawRect(50, 50, 100, 50);

//画填充矩形

// g.setColor(Color.BLUE); //设置颜色

// g.fillRect(80,60,40,60);

}

}

# Java嵌入图片

```

class MyPanel extends JPanel //我自己的面板,用于绘图和实现绘图区域

{

//覆盖JPanel的paint方法

//Graphics是绘图的重要类,可以理解成一支画笔

public void paint(Graphics g)

{

//放置图片

Image im = Toolkit.getDefaultToolkit().getImage

(Panel.class.getResource("/sysu.jpg"));

g.drawImage(im, 50, 50, 70, 70, this); //this代指JPanel本身,意思是把图片放这上面

}

}

```

# 将矩形图片切成圆形

周边透明!

```

import java.awt.*;

import java.awt.geom.Ellipse2D;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

public class Main {

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

BufferedImage bi1 = ImageIO.read(new File("G:/code/Java/leetcode/src/mm.jpg"));

// 根据需要是否使用 BufferedImage.TYPE_INT_ARGB

BufferedImage image = new BufferedImage(bi1.getWidth(), bi1.getHeight(),

BufferedImage.TYPE_INT_ARGB);

Ellipse2D.Double shape = new Ellipse2D.Double(0, 0, bi1.getWidth(), bi1

.getHeight());

Graphics2D g2 = image.createGraphics();

image = g2.getDeviceConfiguration().createCompatibleImage(bi1.getWidth(), bi1.getHeight(), Transparency.TRANSLUCENT);

g2 = image.createGraphics();

g2.setComposite(AlphaComposite.Clear);

g2.fill(new Rectangle(image.getWidth(), image.getHeight()));

g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f));

g2.setClip(shape);

// 使用 setRenderingHint 设置抗锯齿

g2.drawImage(bi1, 0, 0, null);

g2.dispose();

try {

ImageIO.write(image, "PNG", new File("G:/code/Java/leetcode/src/mm2.jpg"));

} catch (IOException e) {

e.printStackTrace();

}

}

}

# 保存图片

但是保存不了组建图片

Dimension imageSize = qwe.getSize();

BufferedImage image = new BufferedImage(imageSize.width,

imageSize.height, BufferedImage.TYPE_INT_ARGB);

Graphics2D g = image.createGraphics();

qwe.paint(g);

g.dispose();

try {

ImageIO.write(image, "png", new File("G:/code/Java/leetcode/src/sysu2.jpg"));

} catch (IOException e) {

e.printStackTrace();

}

![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1501417829&di=92f1cfa22efa1d88ac0fea28f541f177&imgtype=jpg&er=1&src=http%3A%2F%2Fp2.qhimg.com%2Ft01734e32fa1e77bbc0.jpg)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值