HttpServlet动态生成图像
2015-06-10 21:57
609 查看
HttpServlet动态生成图像
Java动态生成图像使用了BufferedImage和Graphics2D.
HttpServlet根据请求内容动态生成图像的代码如下:
OutputStream out = response.getOutputStream();
Font font = new Font("微软雅黑", Font.BOLD, 19);
int sigW = 20;
int sigH = 26;
String count = request.getParameter("count");
if (count == null || count.equals(""))
{
count = "1";
}
int num = count.length();
// 声明绘制的BufferedImage
BufferedImage img = new BufferedImage(num * (sigW + 1), sigH, BufferedImage.TYPE_INT_RGB);
// 由上面的BufferedImage获得Graphics2D画布
Graphics2D g = (Graphics2D) img.getGraphics();
// 将画布的绘制颜色设置为黑色
g.setColor(Color.black);
// 在画布上绘制一个矩形
g.fillRect(0, 0, num * (sigW + 1), sigH);
// 将画布的绘制颜色设置为白色
g.setColor(Color.white);
// 设置画布的Font属性
g.setFont(font);
// 循环在画布上绘制request中的每一个字符
for (int i = 0; i < count.length(); i++)
{
g.drawString(count.charAt(i) + "", (sigW + 1) * i, 19);
// 绘制一条竖线分割
g.drawLine((sigW + 1) * i + sigW, 0, (sigW + 1) * i + sigW, sigH);
}
// 利用ImageIO将图像输出到response的OutputStream
ImageIO.write(img, "jpg", out);
【说明】
上面使用了ImageIO将绘制得到的BufferedImage输出给了response的输出流,从而发送给浏览器,除了使用ImageIO之外,还可以使用JPEGImageEncoder来实现上面的过程,具体实现如下:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(img);
Java动态生成图像使用了BufferedImage和Graphics2D.
HttpServlet根据请求内容动态生成图像的代码如下:
OutputStream out = response.getOutputStream();
Font font = new Font("微软雅黑", Font.BOLD, 19);
int sigW = 20;
int sigH = 26;
String count = request.getParameter("count");
if (count == null || count.equals(""))
{
count = "1";
}
int num = count.length();
// 声明绘制的BufferedImage
BufferedImage img = new BufferedImage(num * (sigW + 1), sigH, BufferedImage.TYPE_INT_RGB);
// 由上面的BufferedImage获得Graphics2D画布
Graphics2D g = (Graphics2D) img.getGraphics();
// 将画布的绘制颜色设置为黑色
g.setColor(Color.black);
// 在画布上绘制一个矩形
g.fillRect(0, 0, num * (sigW + 1), sigH);
// 将画布的绘制颜色设置为白色
g.setColor(Color.white);
// 设置画布的Font属性
g.setFont(font);
// 循环在画布上绘制request中的每一个字符
for (int i = 0; i < count.length(); i++)
{
g.drawString(count.charAt(i) + "", (sigW + 1) * i, 19);
// 绘制一条竖线分割
g.drawLine((sigW + 1) * i + sigW, 0, (sigW + 1) * i + sigW, sigH);
}
// 利用ImageIO将图像输出到response的OutputStream
ImageIO.write(img, "jpg", out);
【说明】
上面使用了ImageIO将绘制得到的BufferedImage输出给了response的输出流,从而发送给浏览器,除了使用ImageIO之外,还可以使用JPEGImageEncoder来实现上面的过程,具体实现如下:
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(img);
相关文章推荐
- 一个最简单的通过WireShark破解SSL加密网络数据包的方法
- 写一个程序用来查询手机号码的归属地(使用的是HttpURLConnection的get提交方式)
- [FZYZOJ 2108] 连接网络
- JAVA课程实验报告 实验五 Java网络编程及安全
- http协议中get与post区别详解
- java发送http的get、post请求
- python解析pcap文件中的http数据包
- TCP并发服务器,每个客户一个子进程
- Java实验五报告——TCP传输及加解密
- 常见的HTTP状态码
- httpwatch详解
- 黑马程序员java学习笔记——网络编程
- Nginx作为WEB服务相关配置(性能优化,网络连接,访问控制,虚拟主机,https等等)
- 第二十五篇 苦逼的人生该作何解释
- java+mysql实现网络爬虫
- http2.2常用配置(虚拟主机,访问控制,压缩,缓存,压力测试)
- [android]完美解决ListView加载网络图片乱跳问题
- linux 网络参数配置命令
- 编译安装LAMP(一)――编译安装httpd-2.4.4
- TCP协议的KeepAlive机制与HeartBeat心跳包