package com.ruoyi.common.utils.file; 
 | 
  
 | 
import java.io.ByteArrayInputStream; 
 | 
import java.io.ByteArrayOutputStream; 
 | 
import java.io.FileInputStream; 
 | 
import java.io.InputStream; 
 | 
import java.net.URL; 
 | 
import java.net.URLConnection; 
 | 
import java.util.Arrays; 
 | 
import org.apache.poi.util.IOUtils; 
 | 
import org.slf4j.Logger; 
 | 
import org.slf4j.LoggerFactory; 
 | 
import com.ruoyi.common.config.RuoYiConfig; 
 | 
import com.ruoyi.common.constant.Constants; 
 | 
import com.ruoyi.common.utils.StringUtils; 
 | 
  
 | 
/** 
 | 
 * 图片处理工具类 
 | 
 * 
 | 
 * @author ruoyi 
 | 
 */ 
 | 
public class ImageUtils 
 | 
{ 
 | 
    private static final Logger log = LoggerFactory.getLogger(ImageUtils.class); 
 | 
  
 | 
    public static byte[] getImage(String imagePath) 
 | 
    { 
 | 
        InputStream is = getFile(imagePath); 
 | 
        try 
 | 
        { 
 | 
            return IOUtils.toByteArray(is); 
 | 
        } 
 | 
        catch (Exception e) 
 | 
        { 
 | 
            log.error("图片加载异常 {}", e); 
 | 
            return null; 
 | 
        } 
 | 
        finally 
 | 
        { 
 | 
            IOUtils.closeQuietly(is); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public static InputStream getFile(String imagePath) 
 | 
    { 
 | 
        try 
 | 
        { 
 | 
            byte[] result = readFile(imagePath); 
 | 
            result = Arrays.copyOf(result, result.length); 
 | 
            return new ByteArrayInputStream(result); 
 | 
        } 
 | 
        catch (Exception e) 
 | 
        { 
 | 
            log.error("获取图片异常 {}", e); 
 | 
        } 
 | 
        return null; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 读取文件为字节数据 
 | 
     *  
 | 
     * @param key 地址 
 | 
     * @return 字节数据 
 | 
     */ 
 | 
    public static byte[] readFile(String url) 
 | 
    { 
 | 
        InputStream in = null; 
 | 
        ByteArrayOutputStream baos = null; 
 | 
        try 
 | 
        { 
 | 
            if (url.startsWith("http")) 
 | 
            { 
 | 
                // 网络地址 
 | 
                URL urlObj = new URL(url); 
 | 
                URLConnection urlConnection = urlObj.openConnection(); 
 | 
                urlConnection.setConnectTimeout(30 * 1000); 
 | 
                urlConnection.setReadTimeout(60 * 1000); 
 | 
                urlConnection.setDoInput(true); 
 | 
                in = urlConnection.getInputStream(); 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                // 本机地址 
 | 
                String localPath = RuoYiConfig.getProfile(); 
 | 
                String downloadPath = localPath + StringUtils.substringAfter(url, Constants.RESOURCE_PREFIX); 
 | 
                in = new FileInputStream(downloadPath); 
 | 
            } 
 | 
            return IOUtils.toByteArray(in); 
 | 
        } 
 | 
        catch (Exception e) 
 | 
        { 
 | 
            log.error("获取文件路径异常 {}", e); 
 | 
            return null; 
 | 
        } 
 | 
        finally 
 | 
        { 
 | 
            IOUtils.closeQuietly(in); 
 | 
            IOUtils.closeQuietly(baos); 
 | 
        } 
 | 
    } 
 | 
} 
 |