• 绘制图片


    com.sun.image.codec.jpeg.*在jdk里面的jre,找到rt.jar
     
    Java代码 
    1. import java.io.IOException;  
    2. import javax.servlet.ServletException;  
    3. import javax.servlet.http.HttpServletRequest;  
    4. import javax.servlet.http.HttpServletResponse;  
    5.   
    6. import java.io.*;  
    7. import javax.servlet.*;  
    8. import javax.servlet.http.*;  
    9. import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api  
    10. import javax.imageio.stream.*;  
    11. import java.awt.*;  
    12. import java.awt.image.BufferedImage;  
    13.   
    14. /** 
    15.  *  
    16.  * 显示文件的Servlet 
    17.  * 负责从本地文件中读取图片, 
    18.  *  
    19.  */  
    20. public class ShowPic extends javax.servlet.http.HttpServlet implements  
    21.         javax.servlet.Servlet {  
    22.   
    23.     private static final String GIF = "image/gif;charset=GB2312";// 设定输出的类型  
    24.   
    25.     private static final String JPG = "image/jpeg;charset=GB2312";  
    26.   
    27.     /* 
    28.      * (non-Java-doc) 
    29.      *  
    30.      * @see javax.servlet.http.HttpServlet#HttpServlet() 
    31.      */  
    32.     public ShowPic() {  
    33.         super();  
    34.     }  
    35.   
    36.     /* 
    37.      * (non-Java-doc) 
    38.      *  
    39.      * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, 
    40.      *      HttpServletResponse response) 
    41.      */  
    42.     protected void doGet(HttpServletRequest request,  
    43.             HttpServletResponse response) throws ServletException, IOException {  
    44.         doPost(request, response);  
    45.     }  
    46.   
    47.     /* 
    48.      * (non-Java-doc) 
    49.      *  
    50.      * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, 
    51.      *      HttpServletResponse response) 
    52.      */  
    53.     protected void doPost(HttpServletRequest request,  
    54.             HttpServletResponse response) throws ServletException, IOException {  
    55.         String spec = request.getParameter("spec");// 输出图片的类型的标志  
    56.   
    57.         String imagePath = "D:\temp\1.jpg";  
    58.   
    59.         response.reset();  
    60.   
    61.         OutputStream output = response.getOutputStream();// 得到输出流  
    62.         if (imagePath.toLowerCase().endsWith(".jpg"))// 使用编码处理文件流的情况:  
    63.         {  
    64.             response.setContentType(JPG);// 设定输出的类型  
    65.             // 得到图片的真实路径  
    66.   
    67.             // 得到图片的文件流  
    68.             InputStream imageIn = new FileInputStream(new File(imagePath));  
    69.             // 得到输入的编码器,将文件流进行jpg格式编码  
    70.             JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(imageIn);  
    71.             // 得到编码后的图片对象  
    72.             BufferedImage image = decoder.decodeAsBufferedImage();  
    73.             // 得到输出的编码器  
    74.             JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(output);  
    75.             encoder.encode(image);// 对图片进行输出编码  
    76.             imageIn.close();// 关闭文件流  
    77.         }  
    78.         if (imagePath.toLowerCase().endsWith(".gif"))// 不使用编码处理文件流的情况:  
    79.         {  
    80.             response.setContentType(GIF);  
    81.             ServletContext context = getServletContext();// 得到背景对象  
    82.             InputStream imageIn = context.getResourceAsStream(imagePath);// 文件流  
    83.             BufferedInputStream bis = new BufferedInputStream(imageIn);// 输入缓冲流  
    84.             BufferedOutputStream bos = new BufferedOutputStream(output);// 输出缓冲流  
    85.             byte data[] = new byte[4096];// 缓冲字节数  
    86.             int size = 0;  
    87.             size = bis.read(data);  
    88.             while (size != -1) {  
    89.                 bos.write(data, 0, size);  
    90.                 size = bis.read(data);  
    91.             }  
    92.             bis.close();  
    93.             bos.flush();// 清空输出缓冲流  
    94.             bos.close();  
    95.         }  
    96.         output.close();  
    97.     }  
    98. }  

     

       想要调用的话,你可以简单的映射一下servelt,我就将servet的名映射为

     

     

    Html代码 
    1. <servlet>  
    2.     <servlet-name>ShowPic</servlet-name>  
    3.     <display-name>ShowPic</display-name>  
    4.     <description></description>  
    5.     <servlet-class>  
    6.     cn.ccb.zlgz.web.servlet.ShowPic</servlet-class>  
    7.   </servlet>  
    8.   <servlet-mapping>  
    9.     <servlet-name>ShowPic</servlet-name>  
    10.     <url-pattern>/ShowPic</url-pattern>  
    11.   </servlet-mapping>  

     


           使用HTML调用:

     

    Html代码 
    1. <html>  
    2. <body>  
    3. <img src="ShowPic?spec=2"></a>  
    4. </body>  
    5. </html>  

     

  • 相关阅读:
    Android安装apk
    Android获取应用程序版本信息
    Handler消息传递机制
    Activity的启动模式
    cocopods的使用
    ios9 的新特性
    静态库的制作详解
    真机调试
    时间差计算(给定两时间,转换为时间差)
    socket 通信机制的实现
  • 原文地址:https://www.cnblogs.com/danmao/p/4032238.html
Copyright © 2020-2023  润新知