jedis获取redis中二进制图片转Base64方式

jedis获取redis图片 转成Base64

jedis存对象

/** * 序列化 * * @param object * @return */
public static byte[] serialize(Object object) {
    ObjectOutputStream oos = null;
    ByteArrayOutputStream baos = null;
    try {
        baos = new ByteArrayOutputStream();
        oos = new ObjectOutputStream(baos);
        oos.writeObject(object);
        byte[] bytes = baos.toByteArray();
        return bytes;
    } catch (Exception e) { 

    } return null;
}
/** * 反序列化 * * @param bytes * @return */
public static Object unserialize(byte[] bytes) {
    ByteArrayInputStream bais = null;
    try {
  ObjectInputStream inputStream;
        inputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));
        Object obj = inputStream.readObject();
    } catch (Exception e) {

    }
    return null;
}

jedis获取redis里面的图片 转成Base64

/**
  * 将字节转为对象
  */
 public Object byte2Object(byte[] bytes) {
        if (bytes == null || bytes.length == 0)
            return null;
        try {
            ObjectInputStream inputStream;
            inputStream = new ObjectInputStream(new ByteArrayInputStream(bytes));
            Object obj = inputStream.readObject();
            return obj;
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }

获取Base64字符

String imgBase64Str = Base64Utill.getImgBase64Str(
    (byte[])(byte2Object(jedis.get(key.getBytes())))  );

转Base64工具类

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.stream.FileImageInputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64Utill {
 /**
   *
   * @Description 将字节转Base64文件
   * @param data 要转换的字节
   * @param fileType 文件类型
   * @return Base64字符串
   */
 public static String getImgBase64Str(byte[] data, String fileType) throws IOException {
     String fileContentBase64 = null;
     String base64Str = "data:" + fileType + ";base64,";
     String content = null;
         //对字节数组Base64编码
         if (data == null || data.length == 0) {
             return null;
         }
         BASE64Encoder encoder = new BASE64Encoder();
         content = encoder.encode(data);
         if (content == null || "".equals(content)) {
             return null;
         }
         fileContentBase64 = base64Str + content;
     return fileContentBase64;
 }

 /**
   *
   * @Description 将字节转Base64
   * @param data 要转换的字节
   * @return Base64字符串
   */
 public static String getImgBase64Str(byte[] data) throws IOException {
     String fileContentBase64 = null;
     String content = null;
         //对字节数组Base64编码
         if (data == null || data.length == 0) {
             return null;
         }
         BASE64Encoder encoder = new BASE64Encoder();
         content = encoder.encode(data);

         if (content == null || "".equals(content)) {
             return null;
         }
         fileContentBase64=content;
     return fileContentBase64;
 }

 /**
   *
   * @Description 将字节转Base64文件
   * @param file  要转换的文件
   * @param fileType 文件类型
   * @return Base64字符串
   */
 public static String getImgBase64Str(File file)  {
     String fileContentBase64 = null;

     String content = null;
     //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
     InputStream in = null;
     //读取图片字节数组
     try {
         in = new FileInputStream(file);
         byte[] data =  new byte[in.available()];
         in.read(data);
         in.close();
         //对字节数组Base64编码
         if (data == null || data.length == 0) {
             return null;
         }
         BASE64Encoder encoder = new BASE64Encoder();
         content = encoder.encode(data);
         if (content == null || "".equals(content)) {
             return null;
         }
         return encoder.encode(data);
     } catch (IOException e) {
         e.printStackTrace();
     } finally {
         if (in != null) {
             try {
     in.close();
    } catch (IOException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
    }
         }
     }
     return fileContentBase64;
 }

 /**
   *
   * @Description 将字节转Base64文件
   * @param file  要转换的文件
   * @param fileType 文件类型
   * @return Base64字符串
   */
 public static String getImgBase64Str(File file, String fileType) throws IOException {
     String fileContentBase64 = null;
     String base64Str = "data:" + fileType + ";base64,";
     String content = null;
     //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
     InputStream in = null;
     //读取图片字节数组
     try {
         in = new FileInputStream(file);
         byte[] data =  new byte[in.available()];
         in.read(data);
         in.close();
         //对字节数组Base64编码
         if (data == null || data.length == 0) {
             return null;
         }
         BASE64Encoder encoder = new BASE64Encoder();
         content = encoder.encode(data);
         if (content == null || "".equals(content)) {
             return null;
         }
         fileContentBase64 = base64Str + content;
     } catch (IOException e) {
         e.printStackTrace();
     } finally {
         if (in != null) {
             in.close();
         }
     }
     return fileContentBase64;
 }
 /**
   *
   * @Description base64转字节
   * @param base64Str 字符串
   * @return byte[]
   */
  public static byte[] base64String2Byte(String base64Str){
         BASE64Decoder decoder = new BASE64Decoder();
         byte[] b = null;
          try {
              b = decoder.decodeBuffer(base64Str);
              for (int i = 0; i < b.length; ++i) {
                  if (b[i] < 0) {
                      b[i] += 256;
                  }
             }
         } catch (IOException e) {
             e.printStackTrace();
         }
         return b;
     }
  /**
      * 将图片转换成Base64编码
      * @param imgFile 待处理图片
      * @return
      */
    public static String getImgBase64Str(String imgFile) {
        // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        InputStream in = null;
        byte[] data = null;
        // 读取图片字节数组
        try {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }

    /**
      * 将图片转换成字节数组
      * @param imgFile 待处理图片
      * @return
      */
    public  byte[] image2byte(String path){
        byte[] data = null;
        FileImageInputStream input = null;
        try {
            input = new FileImageInputStream(new File(path));
            ByteArrayOutputStream output = new ByteArrayOutputStream();
            byte[] buf = new byte[1024];
            int numBytesRead = 0;
            while ((numBytesRead = input.read(buf)) != -1) {
                output.write(buf, 0, numBytesRead);
            }
            data = output.toByteArray();
            output.close();
            input.close();
        }
        catch (FileNotFoundException ex1) {
            ex1.printStackTrace();
        }
        catch (IOException ex1) {
            ex1.printStackTrace();
        }
        return data;
    }

    /**
   * 对字节数组字符串进行Base64解码并生成图片
   * @param imgStr 图片数据
   * @param imgFilePath 保存图片全路径地址
   * @return
   */
    public static boolean generateImage(String imgStr, String imgFilePath) {
        //
        if (imgStr == null) // 图像数据为空
            return false;
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // Base64解码
            byte[] b = decoder.decodeBuffer(imgStr);
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {// 调整异常数据
                    b[i] += 256;
                }
            }
            // 生成jpg图片
            OutputStream out = new FileOutputStream(imgFilePath);
            out.write(b);
            out.flush();
            out.close();
            return true;
        } catch (Exception e) {
            return false;
        }
     }
 }
b[i] += 256;
}
}
// 生成jpg图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java实现图片与二进制的互相转换

    本文实例为大家分享了Java将图片转二进制再将二进制转成图片,供大家参考,具体内容如下 import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import sun.misc

  • jedis操作redis的几种常见方式总结

    前言 Redis是一个著名的key-value存储系统,也是nosql中的最常见的一种.其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用. 我们可以把它想象成一个巨大的(多借点集群,聚合多借点的内存)的Map,也就是Key-Value. 所以,我们可以把它做成缓存组件. 官方推荐的Java版客户端是jedis,非常强大和稳定,支持事务.管道及有jedis自身实现.我们对redis数据的操作,都可以通过jedis来完成. 那我们就来看一看,jedis不同的调用方式: (1

  • 将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作)

    功能需求: 一.获取本地音频文件,进行解析成二进制数据音频流 二.将音频流转化成byte[]数组,按指定大小字节数进行分包 三.将音频流分成若干个包,以List列表形式缓存到redis数据库中 四.从redis数据库中获取数据,转换成音频流输出到浏览器播放.实现音频下载功能 程序如下: 1.在SpringBootpom.xml文件中添加Redis依赖 <!--Redis依赖--> <dependency> <groupId>org.springframework.boo

  • Jedis操作Redis数据库的方法

    本文实例为大家分享了Jedis操作Redis数据库的具体代码,供大家参考,具体内容如下 关于NoSQL的介绍不写了,直接上代码 第一步导包,不多讲 基本操作: package demo; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class Demo

  • Java三种获取redis的连接及redis_String类型演示(适合新手)

    0>确保redis进程服务开启 1>第一种:直接获取redis连接,通过redis.()方法测试连接,如果返回PONG则证明连接正常 //1> jedis的入门代码案例,测试连接 @Test public void test01(){ //1. 获取java连接 redis的连接对象 Jedis jedis = new Jedis("node1", 6379); //2. 执行相关操作 String ping = jedis.ping(); System.out.pr

  • jedis获取redis中二进制图片转Base64方式

    jedis获取redis图片 转成Base64 jedis存对象 /** * 序列化 * * @param object * @return */ public static byte[] serialize(Object object) { ObjectOutputStream oos = null; ByteArrayOutputStream baos = null; try { baos = new ByteArrayOutputStream(); oos = new ObjectOutp

  • Android 通过API获取数据库中的图片文件方式

    Overview 今天复习了一下Android 如何将我们数据库中图片获取出来,并且将其转换为bitmap进行显示. 开发环境以及技术 使用Visual Studio 2019 Android Studio 3.5 API 使用 ASP .NET WEB API 开发 数据库操作只用Entity Framework 使用本地数据库作为数据源 如果你是一个需要开发软件和API的程序员,那么你可以看一下,如果你不是可以选择跳过 $\color{#6995C2}{API开发}$. API 开发 这里我

  • Struts2中图片以base64方式上传至数据库

    1.页面 这里输入代码 <div> <span id="uploadImg" style="margin:50px;background-color:#ddd;display:inline-block;height:130px;width:200px;"> <span style="color:#bbb;font-weight:600;border:2px #ccc dashed;font-size:20px;text-ali

  • 通过Java 程序获取Word中指定图片的坐标位置

    之前给大家介绍过Java解析word,获取文档中图片位置的方法,感兴趣的朋友点击查看下,今天给大家介绍如何通过Java 程序获取Word中指定图片的坐标位置,感兴趣的朋友一起看看吧! 程序运行环境: Word测试文档:.docx 2013 Free Spire.doc.jar 3.9.0 IntelliJ IDEA JDK 1.8.0 方法步骤: 1. 指定文件路径,本次测试代码路径为项目文件夹路径.即在IDEA项目文件下存入用于测试的Word文档,如:C:\Users\Administrato

  • django模板获取list中指定索引的值方式

    格式: list.index 示例: {{ goods.0 }} 补充知识:使用Django从后端向前端页面中传递一个数组的方法 今天用Django框架时遇到一个坑,就是当前端页面接收后端传回来的数据时,该数据是一个列表形式,列表里有字符串类型的数据,然后就一直报错... 查了老半天才知道是django的自动转义搞的鬼! 那什么是转义呢,就是把html语言的关键字过滤掉.例如, 就是html的关键字,如果要在html页面上呈现, 其源代码就必须是<div> 标题默认情况下,django自动为开

  • c# 应用NPOI获取Excel中的图片,保存至本地的算法

    要求:读取excel中的图片,保存到指定路径 思路:  利用NPOI中 GetAllPictures()方法获取图片信息 步骤: 1.新建一个Windows窗体应用程序 2.桌面新建一个excel,贴入两张图片 如下图: 3.在Form中拖入一个button 4.点击button,在点击事件方法中写入,要读取图片的方法:ExcelToImage 点击事件方法如下: private string exclePath = @"C:\users\lenovo\Desktop\testPic.xls&q

  • Java类获取Spring中bean的5种方式

    获取Spring中的bean有很多种方式,再次总结一下: 第一种:在初始化时保存ApplicationContext对象 ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring. 第二种:通过Spring提供

  • 用php实现的获取网页中的图片并保存到本地的代码

    复制代码 代码如下: <?php header("Content-type:image/jpeg"); function read_url($str) { $file=fopen($str,"r"); while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); return $result; } function save_img($str) { $result=read_url($st

  • js获取UEditor富文本编辑器中的图片地址

    写之前在网上找了很多方法,最简单的思路应该是1.获取UEditor中的内容:2.将获取到的字符串转换成jquery对象:3.选择器找到img元素,获取src值. var content= UE.getEditor('details').getContent();//获取编辑器内容 var $div = document.createElement("div");//创建一个div元素对象 $div.innerHTML = content;//往div里填充html var $v = $

  • js 图片转base64的方式(两种)

    方式一:Blob和FileReader 对象 实现原理: 使用xhr请求图片,并设置返回的文件类型为Blob对象[xhr.responseType = "blob"] 使用FileReader 对象接收blob <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport&quo

随机推荐