生成缩略图

来源:互联网 发布:python wordcloud安装 编辑:程序博客网 时间:2024/06/05 17:26

用户上传图片然后生成缩略图显示。以下的代码是本人修改后的。提供给需要的朋友参考参考

 

ImageHandlerServlet 类 

Java代码  收藏代码
  1. package com.web.util;  
  2. import java.awt.image.BufferedImage;  
  3.   
  4. import javax.servlet.ServletException;  
  5. import javax.servlet.ServletOutputStream;  
  6. import javax.servlet.http.HttpServlet;  
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9.   
  10. import com.sun.image.codec.jpeg.JPEGCodec;  
  11. import com.sun.image.codec.jpeg.JPEGImageEncoder;  
  12.   
  13.   
  14. import com.web.util.PicZoom;  
  15.   
  16. public class ImageHandlerServlet extends HttpServlet{     
  17.     protected void service(HttpServletRequest request, HttpServletResponse response)  
  18.                     throws ServletException, java.io.IOException {  
  19.                     //图片的路径  
  20.             String srcImgFileName = request.getParameter("imgPath");  
  21.             if(null == srcImgFileName || "".equals(srcImgFileName)) {  
  22.                 throw new ServletException("图像参数错误!");  
  23.             }  
  24.             response.setContentType("image/jpeg");  
  25.               
  26.             ServletOutputStream sos = response.getOutputStream();  
  27.               
  28.             //调用PicZoom类的静态方法zoom对原始图像进行缩放。   
  29.             BufferedImage buffImg = PicZoom.zoom(srcImgFileName);  
  30.             //创建JPEG图像编码器,用于编码内存中的图像数据到JPEG数据输出流。  
  31.             JPEGImageEncoder jpgEncoder = JPEGCodec.createJPEGEncoder(sos);  
  32.             //编码BufferedImage对象到JPEG数据输出流。  
  33.             jpgEncoder.encode(buffImg);  
  34.             sos.close();  
  35.         }  
  36. }  

这行代码需要从界面接收一张图片的路径String srcImgFileName = request.getParameter("imgPath");

 

PicZoom类

Java代码  收藏代码
  1. package com.web.util;  
  2.   
  3. import java.awt.Color;  
  4. import java.awt.Image;  
  5. import java.awt.image.BufferedImage;  
  6. import java.awt.Graphics2D;  
  7.   
  8. import javax.swing.ImageIcon;  
  9.   
  10. public class PicZoom {  
  11.       
  12.       private static final int WIDTH = 50//缩略图宽度  
  13.       private  static final int HEIGHT = 50;//缩略图高度     
  14.     public static BufferedImage zoom(String srcFileName) {  
  15.         //使用源图像文件名创建ImageIcon对象。  
  16.         ImageIcon imgIcon = new ImageIcon(srcFileName);  
  17.         //得到Image对象。  
  18.         Image img = imgIcon.getImage();  
  19.   
  20.         return zoom(img);  
  21.     }  
  22.       
  23.     public static BufferedImage zoom(Image srcImage) {  
  24.         //构造一个预定义的图像类型的BufferedImage对象。  
  25.         BufferedImage buffImg = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);  
  26. //        buffImg.flush();                                          
  27.         //创建Graphics2D对象,用于在BufferedImage对象上绘图。  
  28.         Graphics2D g = buffImg.createGraphics();  
  29.           
  30.         //设置图形上下文的当前颜色为白色。  
  31.         g.setColor(Color.WHITE);  
  32.         //用图形上下文的当前颜色填充指定的矩形区域。  
  33.         g.fillRect(00, WIDTH, HEIGHT);  
  34.         //按照缩放的大小在BufferedImage对象上绘制原始图像。  
  35.         g.drawImage(srcImage, 00, WIDTH, HEIGHT, null);  
  36.         //释放图形上下文使用的系统资源。  
  37.         g.dispose();  
  38.         //刷新此 Image 对象正在使用的所有可重构的资源.  
  39.         srcImage.flush();  
  40.           
  41.         return buffImg;  
  42.     }  
  43. }  

 web.xml

Java代码  收藏代码
  1. <servlet>  
  2.     <servlet-name>ImageHandlerServlet</servlet-name>  
  3.     <servlet-class>com.web.util.ImageHandlerServlet</servlet-class>  
  4. </servlet>  
  5. <servlet-mapping>  
  6.     <servlet-name>ImageHandlerServlet</servlet-name>  
  7.     <url-pattern>/imageHandlerServlet</url-pattern>            
  8. </servlet-mapping>  

 

 index.jsp 

Java代码  收藏代码
  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10. <!--   
  11. imgPath指定一张图片的路径  
  12.  -->  
  13. <img SRC="imageHandlerServlet?imgPath=d:/img/11.gif"/>  
  14. </body>  
  15. </html>  

 

以上的实现只支持".jpg", ".gif", ".png", ".jpeg"格式

0 0