java 图片处理 base64编码和图片二进制编码相互转换
今天在弄小程序项目时,涉及上传图片的更改。
以下是代码:
/**
* -> base64
* @param imgFile
* @return
* @throws IOException
*/
public static String getImageStr(String imgFile) throws IOException {
InputStream inputStream = null;
byte[] data = null; inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close(); // 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
/**
* base64 ->
* @param imgStr
* @param path
* @return
* @throws IOException
*/
public static boolean generateImage(String imgStr, String path) throws IOException {
if (imgStr == null){
return false;
}
BASE64Decoder decoder = new BASE64Decoder(); //解密
byte[] b = decoder.decodeBuffer(imgStr);
// 处理数据
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream(path);
out.write(b);
out.flush();
out.close();
return true;
}
 public static void main(String[] args) throws IOException {
         //图片 -》 base64
         String imgFile = "F:/Desktop/tupain/kaoshiwancheng.jpg";
         getImageStr(imgFile);
         //base64 -> 图片
         String imgStr = "imgStr";
         String path = "F:/Desktop/tupain/kaoshiwancheng.jpg";
         generateImage(imgStr, path);
     }
不过需要注意的是,一般插件返回的base64编码的字符串都是有一个前缀的。"data:image/jpeg;base64," 解码之前这个得去掉。
引用:https://www.cnblogs.com/libra0920/p/5754356.html
java 图片处理 base64编码和图片二进制编码相互转换的更多相关文章
- Base64编码 图片与base64编码互转
		package com.education.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import jav ... 
- Java Base64编码与图片互转
		import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ... 
- java编写之jpg图片与base64编码之间的转换
		/** * @author zyq * 将网络图片进行Base64位编码 * @param imgUrl * */ public static String encodeWebImageToBase6 ... 
- java自带BASE64工具进行图片和字符串转换
		java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ... 
- Base64编码与图片互转
		import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ... 
- BASE64编码的图片在网页中的显示问题的解决
		BASE64位转码有两种: 一种是图片转为Base64编码,这种编码是直接可以在页面通过<img src='base64编码'/>的方式显示 Base64 在CSS中的使用 .demoIm ... 
- java自带BASE64工具进行图片和字符串转换【转】
		java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ... 
- 图片和base64编码字符串 互相转换,图片和byte数组互相转换
		图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ... 
- 从Base64编码转换为图片文件
		package luckyclient.utils;import java.io.FileInputStream;import java.io.FileOutputStream;import java ... 
随机推荐
- [Swift-2019力扣杯春季决赛]3. 最长重复子串
			给定字符串 S,找出最长重复子串的长度.如果不存在重复子串就返回 0. 示例 1: 输入:"abcd" 输出:0 解释:没有重复子串. 示例 2: 输入:"abbaba& ... 
- Kubernetes的污点和容忍(上篇)
			背景 搭建了一个k8s(Kubernetes)的事件监听服务,监听事件之后对数据做处理.有天报了一个问题经调查是新版本的k8s集群添加会把unschedule等信息通过污点的方式反映.而这些污点是只有 ... 
- python:socket网络编程
			Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket, 又称为“套接字”. 模块 import socket 创建套接字 socket.socket( ... 
- Python的魔法函数系列 __getattrbute__和__getattr__
			#!/usr/bin/env python # -*- coding: utf-8 -*- import sys __metaclass__ = type """ _ ... 
- SLAM+语音机器人DIY系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比
			摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由行走,并且可以与人语音对话的机器人.实现的关键是让机器人能通过传感器感知周围环境,并通过 ... 
- 常见js报错
			1Uncaught TypeError: Cannot read property 'length' of null Uncaught TypeError: Cannot read property ... 
- 微信小程序性能优化之一
			性能优化 界面和业务逻辑之间事件交互小程序调用nativeNative回调小程序 图片源文件优化 渲染优化 ---------------------------------------------- ... 
- powdesingner 更新数据库表结构
			1.连接数据库 2更新数据库表结构 
- 解释器模式 Interpreter 行为型 设计模式(十九)
			解释器模式(Interpreter) 考虑上图中计算器的例子 设计可以用于计算加减运算(简单起见,省略乘除),你会怎么做? 你可能会定义一个工具类,工具类中有N多静态方法 比如定义了两个 ... 
- Android AutoCompleteTextView和MultiAutocompleteTextView实现动态自动匹配输入的内容
			AutoCompleteTextView MultiAutocompleteTextView 这两个控件长的很相似,功能也很相似. AutoCompleteTextView 功能: 动态匹配输入的内容 ... 
