java后台获取动态图返回给前台

 
 
try (ServletOutputStream bos = response.getOutputStream()) {

    byte[] fileByte = **************;//获取图片二进制数组
    
    String type = "JPG";
    // GIF    获取图片格式
    if (fileByte[0] == (byte) 'G' && fileByte[1] == (byte) 'I' && fileByte[2] == (byte) 'F')
        type = "GIF";
    // PNG
    else if (fileByte[1] == (byte) 'P' && fileByte[2] == (byte) 'N' && fileByte[3] == (byte) 'G')
        type = "PNG";
    // JPG
    else if (fileByte[6] == (byte) 'J' && fileByte[7] == (byte) 'F' && fileByte[8] == (byte) 'I' && fileByte[9] == (byte) 'F')
        type = "JPG";
    
    String imageType = "image/"+type;
    response.setContentType(imageType);

    InputStream inputStream = new ByteArrayInputStream(fileByte);
    
    int len;//保证能够读取到gif图片
    while ((len = inputStream.read(fileByte)) > 0) {
        bos.write(fileByte, 0, len);
    }
   
    BufferedImage image = ImageIO.read(inputStream);

    ImageIO.write(image, type, bos);
    bos.flush();

} catch (IOException e) {
    e.printStackTrace();
    log.warn("e: " + e.getMessage());
    
}

猜你喜欢

转载自blog.csdn.net/july_young/article/details/80854416