一、本图片生成器具有以下功能特性:
1、可以设置图片的宽度、高度、外框颜色、背景色;
2、可以设置图片字体的大小、名称、颜色;
3、可以设置输出图片的格式,如JPEG、GIF等;
4、可以将图片存储到一个文件或者存储到一个输出流;
5、可以为图片增加若干条干扰线(在生成随机码图片时可用此特性);
6、打印在图片上的文字支持自动换行;
另外,本图片生成器还用到了模板方法模式。
二、下面列出相关的源代码
1、抽象类AbstractImageCreator的源代码
/**本代码在 http://www.bt285.cn http://www.5a520.cn 已使用了 */
public abstract class AbstractImageCreator { private static Random rnd = new Random(new Date().getTime()); //图片宽度 private int width = 200; //图片高度 private int height = 80; //外框颜色 private Color rectColor; //背景色 private Color bgColor; //干扰线数目 private int lineNum = 0; //图片格式 private String formatName = "JPEG"; //字体颜色 private Color fontColor = new Color(0, 0, 0); //字体名称 private String fontName = "宋体"; //字体大小 private int fontSize = 15; //##### 这里省略成员变脸的get、set方法 ##### /** * 画干扰线 */ private void drawRandomLine(Graphics graph){ for(int i=0;i<lineNum;i++){ //线条的颜色 graph.setColor(getRandomColor(100, 155)); //线条两端坐标值 int x1 = rnd.nextInt(width); int y1 = rnd.nextInt(height); int x2 = rnd.nextInt(width); int y2 = rnd.nextInt(height); //画线条 graph.drawLine(x1, y1, x2, y2); } } /** * 随机获取颜色对象 */ private Color getRandomColor(int base, int range){ if((base + range) > 255) range = 255 - base; int red = base + rnd.nextInt(range); int green = base + rnd.nextInt(range); int blue = base + rnd.nextInt(range); return new Color(red, green, blue); } //该方法内应用了模板方法模式 public void drawImage(String text)throws IOException{ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); if(rectColor == null) rectColor = new Color(0, 0, 0); if(bgColor == null) bgColor = new Color(240, 251, 200); //获取画布 Graphics graph = image.getGraphics(); //画长方形 graph.setColor(bgColor); graph.fillRect(0, 0, width, height); //外框 graph.setColor(rectColor); graph.drawRect(0, 0, width-1, height-1); //画干扰线 drawRandomLine(graph); //画字符串 drawString(graph, text); //执行 graph.dispose(); //输出图片结果 saveImage(image); } protected abstract void drawString(Graphics graph, String text); protected abstract void saveImage(BufferedImage image)throws IOException; }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索图片
, private
, color
, graph
, 生成器
BufferedImage
java代码生成器、java随机数生成器、java二维码生成器源码、java主键生成器、java id生成器,以便于您获取更多的相关知识。
时间: 2024-10-24 18:57:49