1:获取数据放map之后,调用WaterImage
if (recordMap != null) { WaterImage waterImage = new WaterImage(); ByteArrayOutputStream out = new ByteArrayOutputStream(); try { ImageIO.write(waterImage.createImage(recordMap), "jpg", out); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); }2:createImage方法
package com.rjcloud.util;
import com.rjcloud.api.entity.*;
import gui.ava.html.image.generator.HtmlImageGenerator;
import org.apache.commons.collections.map.HashedMap;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Map;
public class WaterImage {
private int imgWidth = 200;
private int imgHeight = 20;
private int size = 14;
public void setImgHeight(int imgHeight) {
this.imgHeight = imgHeight;
}
public int getImgWidth() {
return this.imgWidth;
}
public void setImgWidth(int imgWidth) {
this.imgWidth = imgWidth;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
String getShowStr(String str){
return str==null?"":str;
}
public BufferedImage createImage(Object obj) {
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
StringBuffer stringBuffer=new StringBuffer();
//把值放在html里面
Map<String, Object> map= (Map<String, Object>) obj;
// stringBuffer.append("<br /><div style='text-align: center ;font-size:18px'><b>"+entity.getCf_cfmc()+"</b></div><br />");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
stringBuffer.append(
" <div id='frame_article_l_warp' class='article_dt' style='display: block;width: 100%;" +
"background-image: url(../images/article_06.gif);background-repeat: repeat-y;" +
"background-position: 0px 0px;height: auto;!important;height: 100%;overflow: hidden;'>" +
"<div class='article_2_s' id='frame_list_s' style='background-image: url(../images/article_03.gif);background-repeat: no-repeat;" +
"background-position: 0px top;display: block;width: 100%;height: 100%;height: auto;!important;overflow: hidden;'>" +
"<div class='article_2_x' id='frame_list_x' style='background-image: url(../images/article_19.gif);background-repeat: no-repeat;" +
"background-position: 0px bottom;display: block;width: 100%;" +
"height: 100%;height: auto;!important;overflow: hidden;'>" +
"<div class='article_con_bg' id='mod_article_con' >" +
" <div id='data_article_title'>" +
" <div class='title' id='cms_article_title' style='line-height:100px;width:1000px;" +
"border-width:0 0 1px 0;text-align:center;padding-top: 20px;word-wrap: break-word;word-break:break-all;" +
"padding-right: 20px;padding-bottom: 0;padding-left: 20px;font-size:33px;'>"+""+"</div>" +
" </div>" +
" <div id='data_article_content'>" +
" <div class='con' id='cms_article_content' style='display: block;font-size:14px;line-height: 1.7;text-align: left;/*(火狐)*/" +
"text-justify:inter-ideograph;/*(IE)*/font-size:16px;'>" +
" <table width='1000px' border='0' cellspacing='0' cellpadding='0' class='x_x' style='margin-top: 15px;margin-bottom: 15px;border-collapse: collapse;'>" );
int i=1;
for(Object key2 : map.keySet()){
if(i%2!=0&&i!=map.keySet().size()) {
stringBuffer.append("<tr><td align='center' class='d_sk' style='background-color: #D9F0FF;color: #006699;border: 1px dashed #999;" +
"padding: 5px;'><font style='background-color: #D9F0FF;display: block;'>" + key2 + "</font></td>" +
"<td style='color: #006699;border: 1px dashed #999;" +
"padding: 5px;'>" + map.get(key2) + "</td>");
}else if(i%2!=0&&i==map.keySet().size()){
stringBuffer.append("<tr><td align='center' class='d_sk' style='background-color: #D9F0FF;color: #006699;border: 1px dashed #999;" +
"padding: 5px;'><font style='background-color: #D9F0FF;display: block;'>" + key2 + "</font></td>" +
"<td style='color: #006699;border: 1px dashed #999;" +
"padding: 5px;'>" + map.get(key2) + "</td></tr>");
}else{
stringBuffer.append("<td align='center' class='d_sk' style='background-color: #D9F0FF;color: #006699;border: 1px dashed #999;" +
"padding: 5px;'><font style='background-color: #D9F0FF;display: block;'>" + key2 + "</font></td>" +
"<td style='color: #006699;border: 1px dashed #999;" +
"padding: 5px;'>" + map.get(key2) + "</td></tr>");
}
i++;
}
stringBuffer.append(" </table>" +
" </div>" +
" </div>" +
"</div>" +
"</div>" +
"</div>" +
" </div>" +
"</div>");
}
// stringBuffer.append("</body>");
// stringBuffer.append("</html>");
imageGenerator.loadHtml(stringBuffer.toString());
return imageGenerator.getBufferedImage();
}
public static void main(String[] args) {
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml("<b>Hello World!</b> Please goto <a title=\"Goto Google\" href=\"http://www.google.com\">Google</a>.");
imageGenerator.saveAsImage("hello-world.png");
imageGenerator.saveAsHtmlWithMap("hello-world.html", "hello-world.png");
// WaterImage create = new WaterImage();
// System.out.println(create.create("中华人民共和国万岁中华人民共和国万岁中华人民共和国万岁中华人民共和国万岁!", "c:/", 500, 38));
}
}
3:把返回的byte处理
response.setCharacterEncoding("UTF-8"); response.setContentType("image/gif"); try { OutputStream out = response.getOutputStream(); byte[] bytes = cmsService.getCreditImg(id,tableid,"",""); ByteArrayInputStream in = new ByteArrayInputStream(bytes); BufferedImage image = ImageIO.read(in); int h = image.getHeight(); int w=image.getWidth(); BufferedImage inputbig = new BufferedImage(w, h,BufferedImage.TYPE_INT_BGR); inputbig.getGraphics().drawImage(image, 0, 0, w, h, null); //画图 ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(baos); ImageIO.write(inputbig, "jpg", imageOutputStream); out.write(baos.toByteArray()); out.flush(); } catch (Exception e) { e.printStackTrace(); }