0 0

java图片与byte数组的转换?我怎么转换不回去呀???10

package com.image;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;

import javax.imageio.ImageIO;


public class ImageWithByte {
	
	 public static  byte[] image2Bytes(String imagePath) throws Exception {
		 BufferedImage bu=ImageIO.read(new File(imagePath));
	     ByteArrayOutputStream imageStream = new ByteArrayOutputStream();
	     try {
	         boolean resultWrite = ImageIO.write(bu, "jpg", imageStream);
	     } catch (Exception e) {
	      	 e.printStackTrace();
	     }
	     imageStream.flush();
	     byte[] tagInfo = imageStream.toByteArray();

	     return tagInfo;
	    } 
	   
	public static void main(String[] args) throws Exception {
	        byte[]info=image2Bytes("D:/我的文档/许女子.jpg");
	        ByteArrayInputStream imageStream = new ByteArrayInputStream(info);
	        BufferedImage image=ImageIO.read(imageStream);
	        String newFilePath="d:/我的文档/图片收藏/许女子.jpg";
	        //BufferedImage image=ImageIO.read(new File("D:/我的文档/许女子.jpg"));
	        ImageIO.write(image, "jpg", new File(newFilePath));		
	   }
   


}


问题补充:问题解决了哟,是我不小心,在开始转换的时候错误了,把原文件给覆盖了哟!!!
谢谢了
2012年5月24日 22:13

1个答案 按时间排序 按投票排序

0 0

采纳的答案

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;

import javax.imageio.ImageIO;

public class TestImage {
	public static byte[] toByteArray(File imageFile) throws Exception {
		BufferedImage img = ImageIO.read(imageFile);
		ByteArrayOutputStream buf = new ByteArrayOutputStream((int) imageFile.length());
		try {
			ImageIO.write(img, "jpg", buf);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return buf.toByteArray();
	}

	public static void main(String[] args) throws Exception {
		byte[] b = toByteArray(new File("d:/Wallpapers/003.jpg"));
		ByteArrayInputStream in = new ByteArrayInputStream(b);
		BufferedImage image = ImageIO.read(in);
		File newFile = new File("d:/Wallpapers/1.jpg");
		ImageIO.write(image, "jpg", newFile);
	}
}


应该没问题的,检查你的文件路径。
如果有异常,把异常信息也贴出来

2012年5月25日 08:34

相关推荐

    java基本类型与byte数组互相转换.pdf

    Java 基本类型与 byte 数组互相转换 Java 中的基本类型与 byte 数组之间的转换是非常重要的,以下是关于 Java 基本类型与 byte 数组互相转换的相关知识点: 1. short 类型转换成 byte 数组 在 Java 中,short ...

    Java将图片转换为byte数组例子总结

    #### 三、将byte数组转换回图片的方法 **方法名称**:`bytesToImage` **参数**: - `byte[] bytes`:表示包含图像数据的字节数组。 **返回值**:`Image` 表示转换后的图像对象。 **实现逻辑**: 1. **创建图像**...

    byte数组转换工具类 byte数组转int,byte数组转short,short转byte数组

    byte数组操作的工具类,支持byte数组转int,int转byte数组,byte数组转short,short转byte数组。。。 下载的人多了,csdn会自动涨分,现在可以手动调了,我给降到最低了

    Java byte数组与其他类型转换

    本文将深入探讨如何在Java中将byte数组与其他基本类型(如short、int、long)进行转换,这些转换在处理二进制数据、网络通信或序列化等方面至关重要。 首先,我们来看byte数组与short之间的转换。在Java中,byte...

    java中两个byte数组实现合并的示例

    在Java编程语言中,有时我们需要将两个或多个字节数组(`byte`数组)合并成一个新的单一数组。这种情况在处理二进制数据、文件读写或者与硬件交互时尤其常见。本文将深入探讨如何在Java中实现两个`byte`数组的合并,...

    Java数值类型与byte数组相互转换

    Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...

    java基本类型与byte数组互相转换.doc

    由于Java基本类型和byte数组都是基本的数据结构,因此在Java编程中经常需要将基本类型转换为byte数组,或者将byte数组转换为基本类型。 在上面的代码中,我们可以看到将Java基本类型转换为byte数组的多个方法,每个...

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    转换Image数据为byte数组

    与之相对,将字节数组转换回`Image`对象的过程则较为直接: 1. **创建图像对象**:使用`Toolkit.getDefaultToolkit().createImage()`方法,直接将字节数组作为参数传递,即可创建出相应的`Image`对象。 2. **预...

    java中把对象转化为byte数组的方法.doc

    java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...

    java整数与byte数组的转换实现代码

    Java整数与byte数组的转换实现代码 Java整数与byte数组的转换是Java编程中常见的操作,以下是相关的知识点: 一、Java整数与byte数组的转换实现代码 Java中的整数可以转换为byte数组,以便于在网络上传输或存储。...

    java数据类型转byte数组

    ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...

    String(含Hex)与Byte数组互相转换[代码]

    在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...

    java基本类型与byte数组互相转换

    Byte数组转换为Short值 最后,`byte`数组也可以转换回相应的基本类型。例如,将2字节的`byte`数组转换为`short`值: ```java public static short byteArrToShort(byte[] b) { byte[] a = new byte[2]; int i =...

    java基本类型与byte数组互相转换文.pdf

    "Java 基本类型与 byte 数组互相转换" Java 是一种面向对象的编程语言,具有强大而灵活的数据类型系统。 Java 中的基本类型包括 boolean、byte、char、short、int、long、float 和 double 等。这些基本类型可以相互...

    java byte相互转换详解左右位移

    相反,从byte数组转换回int类型则需要将这些字节合并起来。 **转换方法:** 1. **byte转int**:将一个byte转换为int,可以通过与0xFF进行按位与操作(AND),然后根据位移规则进行左移或右移操作。例如,`byte b =...

    Java 图片与byte数组互相转换实例

    接着,我们讨论如何将byte数组转换回图片。这个过程相对简单,只需要将byte数组写入到一个FileImageOutputStream中,然后关闭输出流。代码如下: ```java public void byte2image(byte[] data, String path) { if ...

    Java-byte数组转换成16进制字符串

    Java-byte数组转换成16进制字符串

    android byte字节数组转换十六进制字符串

    在Android中,通常不需要担心这个问题,因为byte数组通常不涉及字节序。 总结,Android中将字节数组转换为十六进制字符串的方法多种多样,可以根据项目需求和性能要求选择合适的方式。在开发过程中,了解并熟练掌握...

    float转byte数组测试小工具

    本工具“float转byte数组测试小工具”专注于将浮点数(float)转换为字节数组,这是一种在计算机内存中表示和传输数值的常用方式。在Java、C++、C#等编程语言中,这种转换尤其重要,因为它们使用不同的数据结构来...

Global site tag (gtag.js) - Google Analytics