Java图片和二进制互转-程序员宅基地

技术标签: Java编程  java  

Java图片和二进制互转,可以是jpg,png,gif格式

package com.webkfa.test;
/**
 *
 * @author songlei
 */
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.BASE64Decoder;    
import sun.misc.BASE64Encoder;    
   
public class Test {    
    static BASE64Encoder encoder = new sun.misc.BASE64Encoder();    
    static BASE64Decoder decoder = new sun.misc.BASE64Decoder();    
        
    public static void main(String[] args) { 
    	//把图片用二进制字符串输出
        System.out.println(getImageBinary());
        //二进制字符串转成图片
        base64StringToImage(getImageBinary());    
    }    
        
    public static String getImageBinary(){    
        File f = new File("C:\\Documents and Settings\\zhouyingxi\\桌面\\temp\\QQ图片20140922135352.jpg");           
        BufferedImage bi;    
        try {    
            bi = ImageIO.read(f);    
            ByteArrayOutputStream baos = new ByteArrayOutputStream();    
            ImageIO.write(bi, "jpg", baos);    
            byte[] bytes = baos.toByteArray();    
                
            return encoder.encodeBuffer(bytes).trim();    
        } catch (IOException e) {    
            e.printStackTrace();    
        }    
        return null;    
    }    
        
    public static void base64StringToImage(String base64String){    
        try {    
            byte[] bytes1 = decoder.decodeBuffer(base64String);    
                
            ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);    
            BufferedImage bi1 =ImageIO.read(bais);    
            File w2 = new File("c://QQ.bmp");//可以是jpg,png,gif格式    
            ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动    
        } catch (IOException e) {    
            e.printStackTrace();    
        }    
    }    
   
} 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sl55666/article/details/84682679

智能推荐

EDB的安装和如何带参数运行程序_edb安装-程序员宅基地

文章浏览阅读1k次。首先是EDB 的安装安装install dependenciessudo apt-get install cmake build-essential libboost-dev libqt5xmlpatterns5-dev qtbase5-dev qt5-default libqt5..._edb安装

Ubuntu中将Pycharm/Clion/IDEA添加快捷方式到任务栏_ubuntu idea 任务栏-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏4次。Ubuntu中将Pycharm/Clion/IDEA添加快捷方式到任务栏网上很多用命令的方式添加,但软件本身已经提供了方式,没必要在自己弄一遍文件啥的_ubuntu idea 任务栏

SpringData MongoDB_spring data mongodb-程序员宅基地

文章浏览阅读3.5k次。目录1 SpringData MongoDB简介2 MongoDB环境搭建2.1 解压2.2 创建需要的目录2.3 创建配置文件2.4 启动mongodb3 SpringData MongoDB入门案例3.1目标3.2 创建工程,引入坐标3.3 创建配置文件3.4 创建实体类3.5 自定义dao接口3.6 测试4 SpringData MongoDB实现CRUD操作4.1 增删改4.2 简单查询4.3 命名规则查询1 SpringData MongoDB简介MongoDB是一个跨平台的,面向文档的数据_spring data mongodb

【MySQL】MySQL免密登录的几种方式_mysql 免密登录-程序员宅基地

文章浏览阅读1.6k次,点赞9次,收藏9次。参考资料:MySQL实现(免密登录)参考资料:mysql服务器免密登录配置参考资料:Mysql之三种免密登录方式_mysql 免密登录

王珊的第五版数据库系统概论--第七章总结概述_数据库系统概论第五版与第七版有何不同-程序员宅基地

文章浏览阅读718次。第七章 数据库设计数据库设计分6个阶段1.需求分析:通过前期调查和分析是否做得充分与准确,决定了构建数据库的速度和质量。2.概念结构设计:通过对用户需求进行综合、归纳与抽象,用E-R图形成一个独立于具体数据库管理系统的概念模型。3.逻辑结构设计:将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。逻辑模式、外模式4.物理结构设计:为逻辑数据结构选取一个最适合应用环境的物理结构。包括存储结构和存取方法。内模式5.数据库实施:根据逻辑设计和物理设计的结果构建数据库,编写与调试应用程_数据库系统概论第五版与第七版有何不同

vue中$event的用法——如何获取当前兄弟元素,子元素,父元素_vue event.target 获取同级下一个元素-程序员宅基地

文章浏览阅读2.4w次,点赞10次,收藏46次。<template> <div> <button @click="getEvent($event)">点击</button> </div></template><script> export default { data(){ return{ ..._vue event.target 获取同级下一个元素

随便推点

(6.1)各种USB接口简介_常用usb接口-程序员宅基地

文章浏览阅读3.6w次,点赞7次,收藏76次。/* AUTHOR: Pinus* Creat on : 2018-11-3* REFS : Type-C与Type-A、Type-B接口 Linux USB驱动学习总结(一)---- USB基本概念及驱动架构*/USB概念介绍USB,Universal Serial Bus(通用串行总线),是一个外部总线标准,用于规范电脑与外部设备的连接和通..._常用usb接口

通过Kivy将Python文件打包成apk_python程序通过kivy打包为apk且可以调用摄像头-程序员宅基地

文章浏览阅读9.3w次,点赞39次,收藏457次。一.前言Kivy 是一个开源的 Python 框架,用于快速开发应用,实现各种当前流行的用户界面,比如多点触摸等等。且Kivy 可以运行于 Windows, Linux,MacOS, Android, iOS 等当前绝大部分主流桌面/移动端操作系统。周日在配置Kivy时,教程繁多繁琐,让自己有些找不着北,挨个试后,经常在某处卡壳,屡屡碰壁,希望自己接下来的_python程序通过kivy打包为apk且可以调用摄像头

keil中invalid combination of type specifiers和duplicate specifier in declaration错误-程序员宅基地

文章浏览阅读8.9k次。由于之前的unsigned char型数据被宏定义为uchar,即#define uchar unsigned char,但是在标准的stm32工程中unsigned char是被定义为uint8_t,所以我就把所有之前定义的uchar通过keil的替换功能全部替换为uint8_t,但是之后编译居然出现20个错误!!!!我做了什么???并且所有的错误都指向typedef unsigned ..._invalid combination of type

Jeston TX2-配置中文输入法_tx2 genghuanyuyan-程序员宅基地

文章浏览阅读2.6k次。本文转载自博主“Richar-张”的文章,出处为:https://blog.csdn.net/zj573453769/article/details/53446426仅用于本人记录TX2的学习历程,若有侵权,请告知我,会立即删除1.Fcits安装:[python] view plain copysudo apt install fcitx fcitx-googlepinyin fcitx-tabl..._tx2 genghuanyuyan

安装配置Visual Studio Code Kubernetes Tools_vscode visual studio k5-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏11次。Visual Studio Code Kubernetes Tools1. vscode配置连通k8s1.1拿到k8s集群的配置文件信息1.2 vscode安装插件[Visual Studio Code Kubernetes Tools](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-k..._vscode visual studio k5

pip安装命令_pipanzhuangming;-程序员宅基地

文章浏览阅读6.7k次,点赞2次,收藏8次。打开网址下载pip:https://pypi.org/project/pip/#files解压到你的anaconda包路径中,我的是下图:现在开始安装进入cmd之后,进入d盘:d:进入d盘之后cdD:\anaconda\Lib\site-packages\pip-19.0.3进入目录之后python setup.py install然后..._pipanzhuangming;