用Java来显示图片生成器

一、本图片生成器具有以下功能特性:

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

用Java来显示图片生成器的相关文章

java类的问题-java开发时,显示图片总要在放大或所放窗口后才会显示出来

问题描述 java开发时,显示图片总要在放大或所放窗口后才会显示出来 怎么解决java开发时,显示图片总要在放大或所放窗口后才会显示出来

java和javascript中过滤掉img形式的字符串不显示图片的方法_java

本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉<img></img>和<img />形式的字符串 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml

标签-java 流布局 文字 图片

问题描述 java 流布局 文字 图片 我的面板设置的是流布局,我想要添加文字和图片,文字标签在第一排图片显示在第二排,这个要怎么处理用java实现 解决方案 一定要把文字和图片分开来吗?如果不是,可以把文字和图片放在一个div里面,然后整个div按流布局.这样就很容易实现了,你可以突出文字和图片的分隔,而模糊div的边界,这样看上去就像是文字和图片的流布局了.

JSP显示图片问题的解决

js|解决|问题|显示 前提:使用JSP显示图片.图片的存储位置在数据库中. 方法:用JDBC连接数据库,从数据库读出数据,用输出流输出到页面. <\%@ page contentType="text/html" language="java" \%> <\%@ page buffer="16kb" \%> <\%@ page import="java.sql.*"\%> <\%@ p

JSP显示图片问题时的如何解决

前提:使用JSP显示图片.图片的存储位置在数据库中. 方法:用JDBC连接数据库,从数据库读出数据,用输出流输出到页面. <%@ page contentType="text/html" language="java" %> <%@ page buffer="16kb" %> <%@ page import="java.sql.*"%> <%@ page import="ja

android项目上客户端显示图片报错

问题描述 android项目上客户端显示图片报错 从sd卡上取图片,数据库存储图片的路径,客户端报:java.lang.NumberFormatException:Invalid int:"" 双引号内容是图片路径. 解决方案 互联网访问图片,在android客户端显示 解决方案二: 首先你要确认路径是否出错

[Android] 给图像添加相框、圆形圆角显示图片、图像合成知识

    前一篇文章讲述了Android触屏setOnTouchListener实现突破缩放.移动.绘制和添加水印,继续我的"随手拍"项目完成给图片添加相框.圆形圆角显示图片和图像合成的功能介绍.希望文章对大家有所帮助. 一. 打开图片和显示assets文件中图片     首先,对XML中activity_main.xml进行布局,通过使用RelativeLayout相对布局完成(XML代码后面附).然后,在Mainctivity.java中public class MainActivi

json-图片上传返回JSON数据,前台弹出下载保存文件框, 文件里面是JSON数据,页面上没显示图片怎么解决

问题描述 图片上传返回JSON数据,前台弹出下载保存文件框, 文件里面是JSON数据,页面上没显示图片怎么解决 10C @RequestMapping(value = ""kinduploadfile"" method = RequestMethod.POST) public @ResponseBody JSONObject KindUploadFile(HttpServletRequest requestHttpServletResponse response)

mage con-我的imageicon无法显示图片,程序白板,还退步出去了,求解啊o. o!

问题描述 我的imageicon无法显示图片,程序白板,还退步出去了,求解啊o. o! package image; import java.awt.*; import javax.swing.*; //运行白板关也关不了 public class ImageTest { public static void main(String args[]) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame