iteye_2680 2012-05-24 22:13
浏览 394
已采纳

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

[code="java"]
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));     
   }

}

[/code]

  • 写回答

1条回答 默认 最新

  • _1_1_7_ 2012-05-25 08:34
    关注

    [code="java"]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);
    }
    

    }[/code]

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)