`
tiwson
  • 浏览: 333032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

java操作图片数据Base64编解码

阅读更多
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;
        }
    }
}
分享到:
评论

相关推荐

    java和js相互base64编码解码

    在IT行业中,Base64是一种常见的数据编码方式,它将任意二进制数据转换为可打印的ASCII字符,常用于在网络上传输包含非ASCII字符的数据,如图片或PDF等。在Java和JavaScript中,Base64编码和解码是两个重要的功能,...

    Base64编解码Demo

    在实践中,你可以使用各种编程语言实现Base64的编解码,例如Python的`base64`库,Java的`java.util.Base64`类,或者JavaScript的`btoa`和`atob`函数。 总结来说,这个"Base64编解码Demo"涉及到将MAC地址和IP地址...

    电子邮件MIME协议中的Base64编解码

    MIME协议中使用Base64编解码来表示二进制数据,如图片、音频、视频等。 4. Base64编解码的应用 Base64编解码的应用非常广泛,例如: * 在电子邮件中传输二进制数据 * 在HTTP协议中传输二进制数据 * 在XML和JSON...

    Base64编解码程序 附带源码 可以把文件编码为bmp图片

    Base64编解码程序 可以把文件编码为bmp图片 当然编码出来的图片当然是很不美观的~~~ 注意:不要编码或解码过大的文件~~ 因为该程序的所有操作都是在内存中进行的~~ 且是单线程的~~ 编码出来的位图是BITMAPCOREHEADER...

    Java实现图片和Base64之间的相互转化

    在Java编程中,将图片与Base64编码进行相互转换是一项常见的任务,特别是在网络传输、存储和显示图像数据时。Base64是一种用于将任意二进制数据转换为可打印ASCII字符的编码方式,这对于在HTTP协议下传输二进制数据...

    JAVA将图片转换为Base64编码

    在本文中,我们介绍了如何使用Java将图片转换为Base64编码,并将Base64编码字符串解码成图片。使用Base64编码可以将图片数据转换为文本数据,使得数据传输和存储更加安全和可靠。同时,我们也学习了如何使用Apache ...

    二维码生成 图片Base64编码解码

    二维码生成和图片Base64编码解码是两个在IT领域中常见的操作,广泛应用于数据传输、网页设计和移动应用等领域。下面将详细讲解这两个主题。 首先,二维码(Quick Response Code)是一种二维条形码,可以存储更多的...

    java 图片base64 加密解密

    在Java编程中,图片Base64加密解密是一种常见的数据处理技术,特别是在网络传输和存储时,由于Base64编码可以将二进制数据转换为可打印的ASCII字符,因此非常适用。`sun.misc.BASE64Encoder`和`sun.misc.BASE64...

    Java之Base64编解码.pptx.pptx

    在Java中,Base64编解码操作主要通过`java.util.Base64`类来实现。这个类提供了多个静态方法用于编码和解码。例如,`getEncoder()`方法返回一个Base64编码器实例,`encodeToString(byte[])`方法则可以将字节数组编码...

    Android图片的Base64编码与解码及解码Base64图片方法

    ### 解码Base64图片的特殊情况 在某些场景下,Base64编码的图片字符串会包含额外的信息,例如"data:image/*;base64,",这通常出现在HTML的`&lt;img&gt;`标签中。在解码这种形式的字符串时,需要先去除前缀,只保留Base64...

    Java Base64编码和解码

    在Java中,处理Base64编码和解码的操作通常涉及到网络通信、数据序列化以及安全加密等方面。下面我们将详细探讨Java中的Base64编码和解码原理及其实现方式。 Base64编码的基本思想是将每3个字节(24位)的数据转换...

    Base64编解码.rar

    总结来说,Base64编解码是将二进制数据转换为ASCII字符串的技术,方便在网络传输中使用。了解其原理和应用可以帮助我们在开发过程中更好地处理二进制数据的编码和解码需求。在实际项目中,根据具体场景选择合适的...

    Java基于Base64实现编码解码图片文件

    "Java基于Base64实现编码解码图片文件" Java基于Base64实现编码解码图片文件是Java语言...Java基于Base64实现编码解码图片文件是一种常见的编码解码实现方式,广泛应用于数据传输和存储,但需要注意其安全性和可靠性。

    Base64编码和解码java版本

    下面将详细介绍如何使用这个类进行Base64的编码和解码操作。 首先,我们来看Base64编码的过程。编码的基本思路是将每三个字节的数据(24位)转换为4个Base64字符(每个字符6位)。如果原始数据不是3的倍数,那么...

    java base64源码+jar包

    在Java中,Base64编码和解码通常通过`java.util.Base64`类进行操作,该类自Java 8开始引入。这个类提供了多种方法,如`encodeBytes()`用于编码字节数组,`decode()`用于解码Base64字符串。然而,描述中提到的是一个...

    json数据base64编码压缩+解压解码(java以及js)

    java端:返回类型非字符接口调用StringUtils#base64AndCompressJson进行编码压缩 ,返回类型为字符接口调用StringUtils#base64Andcompress js 端:引入压缩包中的js文件 ,调用deBase64AndUncompress进行解压解码

    base64编码解码源码

    在实际开发中,大多数编程语言都有内置的库函数或模块来处理Base64编码和解码,比如Python的`base64`模块,Java的`java.util.Base64`类,JavaScript的`atob()`和`btoa()`方法等。这些内置函数通常比自定义实现更高效...

    java base64的jar包

    总的来说,`javabase64-1.3.1.jar`是一个实用的Java工具库,它简化了Base64编码和解码的操作,适用于在Java项目中处理需要转换为ASCII文本的二进制数据。在实际开发中,你可以通过导入这个库,轻松地将图片、音频、...

    Base64编解码

    在编程语言中,如Python、Java、JavaScript等,都有内置的Base64编码和解码函数,方便开发者使用。例如,Python中的`base64`模块提供了`b64encode()`和`b64decode()`方法,可以轻松实现Base64的转换。 总的来说,...

    Java 8实现图片BASE64编解码

    在Java 8中,开发人员终于有了内置的Base64编解码API,这使得处理Base64编码变得更加便捷。之前,由于Java的标准库没有提供此类功能,开发人员常常依赖第三方库,如Apache Commons Codec或Google的Guava库。然而,自...

Global site tag (gtag.js) - Google Analytics