[image]base64图片二进制,序列与反序列

简介:
图片数据Base64编解码(java实现) 

package com.vista.test; 

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 

import sun.misc.BASE64Decoder; 
import sun.misc.BASE64Encoder; 

public class MyTest 
{ 
    public static void main(String[] args) 
    { 
        String strImg = GetImageStr(); 
        GenerateImage(strImg); 
    } 
    public static String GetImageStr() 
    {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理 
        String imgFile = "d:\\111.jpg";//待处理的图片 
        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(); 
        } 
        //对字节数组Base64编码 
        BASE64Encoder encoder = new BASE64Encoder(); 
        return encoder.encode(data);//返回Base64编码过的字节数组字符串 
    } 
    public static boolean GenerateImage(String imgStr) 
    {//对字节数组字符串进行Base64解码并生成图片 
        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; 
                } 
            } 
            //生成jpeg图片 
            String imgFilePath = "d:\\222.jpg";//新生成的图片 
            OutputStream out = new FileOutputStream(imgFilePath);    
            out.write(b); 
            out.flush(); 
            out.close(); 
            return true; 
        } 
        catch (Exception e) 
        { 
            return false; 
        } 
    } 
}
目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
456 0
【数据挖掘】神经网络与感知机基础概念讲解(图文解释 超详细)
|
Java 关系型数据库 数据库
【SpringBoot系列】微服务集成Flyway
【4月更文挑战第7天】SpringBoot微服务集成Flyway
926 1
【SpringBoot系列】微服务集成Flyway
|
安全 Linux 网络安全
Centos7安装Docker
安装docker Centos7安装Docker 1.卸载Docker 2.安装docker 3.启动Docker CentOS7安装DockerCompose 1.下载 2.修改文件权限 3.Base自动补全命令:
6150 0
|
消息中间件 存储 分布式计算
Flume实现Kafka数据持久化存储到HDFS
Flume实现Kafka数据持久化存储到HDFS
1176 0
|
人工智能 搜索推荐 算法
爱思唯尔的KBS——模板、投稿、返修、接收的总结
爱思唯尔的KBS——模板、投稿、返修、接收的总结
|
NoSQL Java Go
双亲委派模型与 Flink 的类加载策略
Flink 作为基于 JVM 的框架,在 flink-conf.yaml 中提供了控制类加载策略的参数 classloader.resolve-order,可选项有 child-first(默认)和 parent-first。本文来简单分析一下这个参数背后的含义。
双亲委派模型与 Flink 的类加载策略
|
搜索推荐 IDE API
HBuilderX与Vue3:开启Uniapp开发的新纪元
HBuilderX与Vue3:开启Uniapp开发的新纪元
336 0
|
Java 索引 Spring
Java Jar包压缩、解压使用指南
image 什么是jar包 JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
6287 0