将图片转换为Base64字符串公共类抽取

简介: public class ImageToBase64 { //图片转化成base64字符串 public static String GetImageStr(String path,int width,int height) throws IOException ...
public class ImageToBase64 {

     //图片转化成base64字符串  
    public static String GetImageStr(String path,int width,int height) throws IOException  
    {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
        File srcFile = new File(path);//文件上服务器上面的地址
        if (!srcFile.exists())
            return "";
        Image srcImg = ImageIO.read(srcFile);
        // 生成指定大小图片
        BufferedImage buffImg = null;
        int oldWidth = srcImg.getWidth(null);
        int oldHeight = srcImg.getHeight(null);
        // 计算原图等比缩放长宽
        if (oldWidth * height > width * oldHeight) {
            oldHeight = width * oldHeight / oldWidth;
            oldWidth = width;
        } else {
            oldWidth = height * oldWidth / oldHeight;
            oldHeight = height;
        }
        // 生成新图
        buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        // 填白
        buffImg.getGraphics().fillRect(0, 0, width, height);
        // 填入原图
        buffImg.getGraphics().drawImage(srcImg.getScaledInstance(oldWidth, oldHeight, Image.SCALE_SMOOTH),
                (width - oldWidth) / 2, (height - oldHeight) / 2, null);
        
        ByteArrayOutputStream bs = new ByteArrayOutputStream();
        ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);
        ImageIO.write(buffImg, "jpg", imOut);
        
        
        InputStream in = new ByteArrayInputStream(bs.toByteArray());  
        byte[] data = null;  
        //读取图片字节数组  
        try   
        {  
            data = new byte[in.available()];  
            in.read(data);  
            in.close();  
        }   
        catch (IOException e)   
        {  
           return "";  
        }  
//        String fileName=srcFile.getName();
        //String prefix="data:image/jpg"+fileName.substring(fileName.lastIndexOf(".")+1)+";base64,";
        String prefix="data:image/jpg;base64,";
        return prefix+Base64.encodeBase64String(data);//返回Base64编码过的字节数组字符串  
    }
}

 

相关文章
|
开发者
处理base64图片数据的方式
处理base64图片数据的方式
123 4
|
存储 算法 索引
RLE格式分割标注文件表示
RLE格式分割标注文件表示
1007 0
|
人工智能 Java 对象存储
Java获取阿里云图片临时URL与图片文件转换Base64编码方法
在使用阿里云人工智能产品服务时,有部分服务需要上传的参数中包含文件URL,当我们没有开通OSS服务时,可以使用临时URL服务、或部分服务支持Base64编码格式,此文章为生成临时URL-JavaSDK方案与图片文件转换Base64编码方案。
2018 0
|
5月前
|
Java
JavaSE——方法(1/2)-介绍、方法的各种形式、使用的要求
JavaSE——方法(1/2)-介绍、方法的各种形式、使用的要求
33 5
|
4月前
|
文字识别 Java Python
文本,文识08图片保存()上,最方便在于整体生成代码,serivce及实体类,base64编码保存图片文件,调用flask实现内部ocr接口,通过paddleocr识别,解析结果,base64转图片
文本,文识08图片保存()上,最方便在于整体生成代码,serivce及实体类,base64编码保存图片文件,调用flask实现内部ocr接口,通过paddleocr识别,解析结果,base64转图片
|
4月前
鸿蒙base64编码字符集转化成图片文件
鸿蒙base64编码字符集转化成图片文件
133 0
|
6月前
如何快速提取出一个文件里面全部指定类型的文件的全部路径
该文介绍了如何使用一个工具进行文件批量复制。工具可以从百度网盘(提取码:qwu2)或蓝奏云(提取码:2r1z)下载。打开工具后切换到第五模块,使用Ctrl+5快捷键进入文件批量复制功能。点击“搜索添加”,选择要搜索的文件夹(如PS文件夹),勾选搜索全部子文件,然后开始搜索。搜索完成后,会显示所有结果。
|
6月前
将图片(路径)转换为Base64 和 将base64转换为file类型
将图片(路径)转换为Base64 和 将base64转换为file类型
后端返回的base64流形式的图片,怎么放在src中
后端返回的base64流形式的图片,怎么放在src中
172 0
图片转base64 并根据格式加前缀
图片转base64 并根据格式加前缀
400 0