博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
图片进行base64编解码方法
阅读量:5969 次
发布时间:2019-06-19

本文共 1333 字,大约阅读时间需要 4 分钟。

hot3.png

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;
       }
   }
}

转载于:https://my.oschina.net/xianxianmeier/blog/301522

你可能感兴趣的文章
Web上的支持的图片格式以及它们之间的区别
查看>>
jQuery监听文本框值改变触发事件(propertychange)
查看>>
HDU--2040
查看>>
甲骨文Java Archive
查看>>
查看数据库错误日志的位置
查看>>
电信网络拓扑图自动布局
查看>>
C#中List〈string〉和string[]数组之间的相互转换
查看>>
洛谷P1108 低价购买[DP | LIS方案数]
查看>>
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
C#编程(七十六)----------使用指针实现基于栈的高性能数组
查看>>
PostgreSql 分页limit
查看>>
在MySQL中创建cm-hive使用的数据库及账号
查看>>
linux下限制ip访问
查看>>
linux添加环境变量
查看>>
ASP.NET MVC 入门8、ModelState与数据验证
查看>>
组件居中显示 安卓
查看>>
delete
查看>>