码迷,mamicode.com
首页 > 编程语言 > 详细

Java 图片相关操作

时间:2018-12-20 11:54:25      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:height   put   ring   awt   class   throws   val   image   wstring   

创建一个最简单的数字验证码

package lixin.gan.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.imageio.ImageIO;

public class ValidateCode {
	public static void main(String[] args) throws Exception {
		
		// 创建一张图片
		//BufferedImage(int width, int height, int imageType)
		BufferedImage image = new BufferedImage(50, 30, BufferedImage.TYPE_INT_RGB);
		
		// 在图片上面创建一个2D的图层
		Graphics2D graphics = image.createGraphics();
		
		// 设置图层的左上坐标点,以及宽高
		//graphics.fillRect(x, y, width, height);
		graphics.fillRect(0, 0, 50, 30);
		
		// 创建一种颜色
		Color colorBlue = Color.BLACK;
		// Color(int r, int g, int b)
		Color colorRed = new Color(255, 0, 0);  
		
		// 设置图层的颜色
		//graphics.setColor(Color);
		graphics.setColor(colorRed);
		
		// 产生随机数
		List<Integer> randList = new ArrayList<>();
		Random random = new Random();
		for (int i = 0; i < 4; i++) {
			randList.add(random.nextInt(10));
		}
		
		// 创建字体
		// Font(String name, int style, int size)
		Font font = new Font("宋体", Font.ITALIC, 20);
		
		// 设置图层使用的字体
		graphics.setFont(font);
		
		// 将随机数挨个画在图层中
		for (int i = 0; i < randList.size(); i++) {
			graphics.drawString(randList.get(i)+"", i * 10, 20);
		}
		
		// 创建输出流
		OutputStream outputStream = new FileOutputStream(new File("validateCode.png"));
		
		// 将图片保存,并指定图片格式
		ImageIO.write(image, "png", outputStream);
	}
}

   效果图(白色部分):

  技术分享图片

 

  

 

Java 图片相关操作

标签:height   put   ring   awt   class   throws   val   image   wstring   

原文地址:https://www.cnblogs.com/-beyond/p/10147964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!