`
songlei8090
  • 浏览: 39152 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

 

分享到:
评论

相关推荐

    WebService二进制处理

    WebService二进制处理是Web服务技术中一个关键的议题,特别是在传输大容量或者非文本数据如图片、音频、视频等时。在传统的SOAP(简单对象访问协议)消息中,所有数据都以XML格式进行编码,这可能导致效率低下,因为...

    图片与Base64互转

    2. **二进制转Base64**:读取到的图片数据是二进制形式的,我们需要将其转化为Base64编码。这个过程是通过对二进制数据进行分块,然后根据Base64编码规则将每块数据转换为对应的字符。 3. **生成Base64字符串**:...

    ASP源码—图片base64编码互转工具.zip

    在实际应用中,理解和掌握ASP源码中的Base64编码互转机制,可以提升开发者处理二进制数据的能力,同时对Web前端性能优化有积极作用。通过学习和分析这个源码,你可以更好地理解ASP的文件操作和数据编码技术。

    base64与任何格式的图片互转源码 可运行

    Base64是一种编码机制,常用于在网络上传输和存储二进制数据,如图片、音频或视频文件。...通过理解并熟练运用`java.util.Base64`类,开发者可以轻松地实现在各种应用中转换和操作Base64编码的图片和其他二进制数据。

    图片转字符串工具类

    6. 文件组织:压缩包内的"图片字符串互转"可能是包含了源代码文件的目录,其中可能包括了实现上述功能的Java类,如`ImageStringConverter.java`,以及测试用例或者示例图片。 7. 安全与效率:虽然Base64编码可以使...

    图片文件与Base64编码字节数组字符串互转

    Base64是一种用于将任意二进制数据转换为ASCII字符集的方法,以便可以在电子邮件系统和其他文本格式中传输这些数据。在图片文件和Base64之间进行转换,主要涉及以下步骤: 1. 图片文件转Base64: - 首先,我们需要...

    Java实现图片与Base64编码互转

    在Java编程中,将图片与Base64编码进行互转是一种常见的操作,特别是在网页开发、数据传输和存储中。Base64编码是一种用于将二进制数据转化为ASCII字符串的编码方式,使得这些数据可以在文本格式的环境中(如电子...

    java针对word03与07版本互转.zip

    03版的.doc文件基于二进制的WordDocument格式,而07版的.docx则是基于XML的ZIP存档。这意味着07版的文档可以通过解压查看和修改其内部的XML文件,然后再重新打包。 使用Apache POI进行转换的基本步骤如下: 1. **...

    java源码包---java 源码 大量 实例

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    Blob、InputStream、byte 互转

    在Java开发过程中,我们经常会遇到数据格式转换的问题,尤其是在处理二进制数据如图片、文件等时。本文将详细介绍如何实现`Blob`、`InputStream`、`byte[]`之间的相互转换,并提供具体的代码示例。 #### Blob与byte...

    java源码包3

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java源码包2

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    JAVA上百实例源码以及开源项目源代码

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    image与字节数组byte的互转

    以上就是关于在Java、Python和C#中实现图像与字节数组互转的方法。在实际应用中,确保正确处理异常和资源管理是非常重要的。此外,选择正确的图像格式(如JPEG、PNG等)会影响转换后的文件大小和质量。在处理大量...

    java开源包5

    Blister是一个用于操作苹果二进制PList文件格式的Java开源类库(可用于发送数据给iOS应用程序)。 重复文件检查工具 FindDup.tar FindDup 是一个简单易用的工具,用来检查计算机上重复的文件。 OpenID的Java客户端...

    Java手机与计算机互发彩信源码.7z

    本压缩包文件包含的源码提供了实现这一功能的具体实现,允许用户通过Java应用程序在手机和计算机之间发送包含文本、图片、音频、视频等多媒体内容的消息。以下是对这一技术的详细解释以及源码可能涉及的关键知识点:...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

    gb2312与utf-8转换

    2. 如果文件包含二进制数据(如图片或非文本信息),编码转换可能不适用,因为这些数据不依赖字符编码。 3. 转换后的文件应当重新保存,以保持新的编码格式,否则再次打开时可能又会触发编码问题。 4. 对于大型文件...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...

Global site tag (gtag.js) - Google Analytics