Spring MVC可使用的AbstractJpegView

这和AbstractExcelView,AbstractPdfView不同,此类是实现View接口,实现自定义的视图解析

 

package  Action;

import  java.awt.image.BufferedImage;
import  java.util.Map;

import  javax.servlet.ServletOutputStream;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

import  org.springframework.web.servlet.View;

import  sun.awt.image.codec.JPEGImageEncoderImpl;

import  com.sun.image.codec.jpeg.JPEGImageEncoder;

public   abstract   class  AbstractJpegView  implements  View  {

    
public String getContentType() {
        
// TODO 自动生成方法存根
        return null;
    }

    
public int getImageWidth(){return 100;}
    
public int getImageHeght(){return 100;}
    
protected int getImageType(){
        
return BufferedImage.TYPE_INT_RGB;
    }

    
public void render(Map map, HttpServletRequest request,
            HttpServletResponse response) 
throws Exception {
       response.setContentType(
"image/jpeg");//设置内容类型
       BufferedImage image=new BufferedImage(this.getImageWidth(),this.getImageHeght(),this.getImageType());//缓存图像
       buildImage(map,image,request,response);//绘制图像
       
//编码图像
       ServletOutputStream out=response.getOutputStream();
       JPEGImageEncoder encoder
=new JPEGImageEncoderImpl(out);
       encoder.encode(image);
       out.flush();
       
       
    }

    
protected abstract void buildImage(Map model,BufferedImage image,HttpServletRequest request,HttpServletResponse response) throws Exception;

}

 我们只要继承这个类,实现buildImage方法,就可以输出人以jpeg图像了,下面是一个画圆的简单实现

 

package  Action;

import  java.awt.Graphics;
import  java.awt.image.BufferedImage;
import  java.util.Map;

import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;

public   class  CircleJpegView  extends  AbstractJpegView  {

    
    
protected void buildImage(Map model, BufferedImage image,
            HttpServletRequest request, HttpServletResponse response)
            
throws Exception {
        
//画圆
        Graphics g=image.getGraphics();
        g.drawOval(
0,0this.getImageWidth(), this.getImageHeght());

    }


    

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值