ImageIO(圖像處理)
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 = nullByteArrayOutputStream; 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();
3.FileUtils可對文件進行各種操作。
4.FileNameUtils可對文件名進行各種操作。
5. 通過Base64對image流文件轉化(這裏Base64使用的是Apache的Base64)
1 /** 2 * 通過Base64對圖像數組進行轉化為字符串 3 * @param byteArray 4 * @returnBase645 */ 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 }
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
ImageIO(圖像處理)