1.通过ImageIO的read和writer,对图像文件进行处理。

BufferedImage buffImage = ImageIO.read(file);
// 将图像输出到Servlet输出流中。
ImageIO.write(buffImage, "jpg", response.getOutputStream());

2. 使用byteArray保存request获取的流数据

 1 InputStream is = null;
 2         byte[] byteArray = null;
 3         ByteArrayOutputStream os = null;
 4         try{
 5             is = super.getRemoteReqStream(url);
 6             byte[] temp = new byte[1024];
 7             os = new ByteArrayOutputStream();
 8             int iLength = 0;
 9             while((iLength = is.read(temp, 0, 1024)) != -1){
10                 os.write(temp, 0, iLength);
11             }
12             is.close();
13             byteArray = os.toByteArray();
ByteArrayOutputStream

3.FileUtils可对文件进行各种操作。

4.FileNameUtils可对文件名进行各种操作。

5. 通过Base64对image流文件转化(这里Base64使用的是Apache的Base64)

 1     /**
 2      * 通过Base64对图像数组进行转化为字符串
 3      * @param byteArray
 4      * @return
 5      */
 6     @SuppressWarnings("static-access")
 7     public static String getImageStrByBase64(byte[] byteArray){
 8         String strImage = "";
 9         // 空值判断
10         if(null == byteArray || byteArray.length == 0){
11             return strImage;
12         }
13         Base64 base64 = new Base64();
14         strImage = base64.encodeBase64String(byteArray);
15         return strImage;
16     }
17     
18     
19     /**
20      * 通过Base64对图像数组进行转化为字符串
21      * @param byteArray
22      * @return
23      */
24     @SuppressWarnings("static-access")
25     public static byte[] getImageByteByBase64(String strImage){
26         byte[] byteImg = null;
27         // 空值判断
28         if(StringUtils.isEmpty(strImage)){
29             return byteImg;
30         }
31         Base64 base64 = new Base64();
32         byteImg = base64.decodeBase64(strImage);
33         return byteImg;
34     }
Base64

6.canvas

canvas.toDataURL("image/jpeg", 0.8);  // (image/png)

7.<img>

1. 流形式:<img src="/image/srcInputStream" />

2. 文件路径: <img src="/image/default.jpg" />  当web运行报出找不到图片但图片确实存在时,因为Tomcat服务器的访问权限设置,使得无法访问本项目之外的文件。需要配置Server.xml

添加路径  : 

<Context crossContext="true" docBase="D:\app\hrcloud\elearning\file\video" path="/fileSource" reloadable="true">
</Context>

3. base64展示: 

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJ"/>

4. 因error方法在jquery3版本已经去掉,因此

$("img").attr("onerror", "this.src='***********************************'");

9.对图像的缩放:

1 BufferedImage buffImage = ImageIO.read(new ByteArrayInputStream(byteImg));
2             int width = buffImage.getWidth();
3             int height = buffImage.getHeight();
4             int scaledH = (int)((float)height/(float)width*scaleWidth);
5             Image image = buffImage.getScaledInstance(scaleWidth, scaledH, buffImage.SCALE_REPLICATE);
6             BufferedImage bi = new BufferedImage(scaleWidth, scaledH, BufferedImage.TYPE_INT_RGB);
7             bi.getGraphics().drawImage(image, 0, 0, null);
8             ImageIO.write(bi, "jpg", file);
scaleImage

 

posted on 2017-06-23 13:34  zhaoqiang1980  阅读(1566)  评论(0编辑  收藏  举报