package com.wang;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class counter
*/
public class counter extends HttpServlet {
private static final long serialVersionUID = 1L;
private String countFile = "counter.txt";
private int max = 7;
/**
* @see HttpServlet#HttpServlet()
*/
public counter() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int count = 0;
String result ="";
String projectPath = this.getServletContext().getRealPath("/");
final File file = new File(projectPath +File.separator + countFile);
if (!file.exists()) {
// 创建一个新的文件
file.createNewFile();
count = 0;
try {
PrintWriter pw=new PrintWriter(new FileWriter(file));
pw.print("0");
pw.close();
} catch(IOException e){
System.out.println(e.toString());
}
}
try{
BufferedReader buff=new BufferedReader(new FileReader(file));
String s=buff.readLine();
count=Integer.parseInt(s.trim()); //将字符串变量s转化成整形
count++;
buff.close();//关闭对象
PrintWriter pw=new PrintWriter(new FileWriter(file));
result=Integer.toString(count);//将整形变量i转化成字符型
pw.print(result);
pw.close();
} catch(IOException e){
System.out.println(e.toString());
}
int len =Integer.toString(count).length();
int rest = max - len ;
for(int i=1;i<=rest;i++){
result = "0" + result;
}
System.out.println("count number is: "+ result);
String[] number = new String[max];
BufferedImage ImageNew = null ;
for(int i=0;i<max;i++){
number[i] = result.substring(i, i+1);
number[i] = projectPath +"images"+ File.separator + number[i] + ".jpg";
//读取一张图片
File fileOne = new File(number[i]);
BufferedImage ImageOne = ImageIO.read(fileOne);
int widthOne = ImageOne.getWidth();//图片宽度
int heightOne = ImageOne.getHeight();//图片高度
//从图片中读取RGB
int[] ImageArrayOne = new int[widthOne*heightOne];
ImageArrayOne = ImageOne.getRGB(0,0,widthOne,heightOne,ImageArrayOne,0,widthOne);
if(i== 0){
//生成新图片
ImageNew = new BufferedImage(widthOne*max,heightOne,BufferedImage.TYPE_INT_RGB);
}
ImageNew.setRGB(widthOne*i,0,widthOne,heightOne,ImageArrayOne,0,widthOne);//设置RGB
}
response.setContentType("image/png;charset=UTF-8");
OutputStream os = response.getOutputStream();
ImageIO.write(ImageNew, "png", os);//输出图片
os.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
分享到:
相关推荐
8.4 用Servlet生成动态图片 195 8.5 扩展练习 198 第9章 Web基础知识 201 9.1 Web发展及HTTP协议 201 9.1.1 Web的产生与发展 201 9.1.2 HTTP协议 203 9.2 HTML标记语言 204 9.2.1 HTML基本元素 205 9.2.2 文字与...
(一)美化管理系统界面,完善页面 这个我们参考.doc文档进行 (二) 管理系统功能改进 增加对用户的查找、增加、删除和修改的功能,这样我们这个用户登录系统就成了一个用户管理系统,而且是完全用servlet实现的. ...
5.5.1 通过Servlet实现录入用户信息 5.5.2 应用过滤器实现网页计数器 5.6 疑难解惑 5.6.1 访问Servlet出现404错误 5.6.2 修改Servlet无效 5.6.3 创建过滤器并没有实现过滤效果 5.7 精彩回顾 第6章 打造无脚本的JSP...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
例程1-1:利用Servlet显示动态日期 例程1-2:利用JSP表达式显示动态格式文本 例程1-3:利用JSP标准标记库和表达式语言显示动态新闻 例程1-4:利用自定义标记控制网页图片显示 例程1-5:利用Applet在Web布面实现时钟 ...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
实例22 合成两个图片 53 实例23 实现多种线形 58 实例24 混合效果 62 实例25 纹理与色彩处理 63 实例26 实现填充效果 66 实例27 变形与转换处理 67 实例28 绘制弧线 69 实例29 剪裁效果 74 实例30 跳动的文字特效 78...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
242 实例74 实现一个简单的代理服务器 246 实例75 C/S结构的分布式运算 248 第7章 Java B/S结构编程 253 实例76 简单的Servlet程序 254 实例77 简单的留言簿 256 实例78 JSP+Java Bean的计数器 ...
21 02_1.jpg 第2章\ch2\image sample9.html中使用的图片文件 22 web.xml 第2章\ch2\WEB-INF 第2章程序应用的描述文件 23 register.html 第2章\ch2 习题答案,用户注册页面 表3 第3章 序号 文件名称 位置 说明 ...
程序计数器(Program Counter Register) 49 java虚拟机栈 50 java堆(Java Heap) 51 方法区 51 【JVM】JVM内存结构,GC垃圾收集解析 52 【JVM】双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?...
6.8使用异常来实现键盘输入235 6.9本章小结236 第7章Java的输入和输出237 7.1文件和输入输出流237 7.2InputStream类和OutputStream类的使用238 7.2.1InputStream中的方法238 7.2.2OutputStream中的方法239 ...