我试图将图像转换为字节数组,将字节数组转换为图像

时间:2015-05-10 16:37:37

标签: java image sockets byte

我正在制作客户端 - 服务器应用程序,我想使用字节数组发送图像。我使用此代码将图像转换为字节数组,然后转换为字符串:

// converting the image into bytes
BufferedImage bufferedImage = ImageIO.read(new File(filePath));
WritableRaster raster = bufferedImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
byte[] bytes = data.getData();
System.out.println("Size of array is " + bytes.length);
String base64String = Base64.encode(bytes);
System.out.println("size of base64String to send is " + base64String.length());

我得到了这个输出:

  

阵列大小为743904

     

要发送的base64String的大小为991872

     

我要发送的图像大小为42.4KB

我正在使用此代码:

byte[] bytearray = Base64.decode(newMessage.getMessageToAdd());
System.out.println("Size of array is " + bytearray.length);
OutputStream outimg = null;
try {
    outimg = new BufferedOutputStream(new FileOutputStream(pathToSave));
    outimg.writewrite(bytearray);
} finally {
    if (outimg != null) {
        outimg.close();
    }
}

我得到了这个输出:

  

接收到的数组base64String的大小为991872
  阵列大小为743904
  并且创建的图像大小为726KB

所以从输出中我理解它已经收到并发送图像而没有出现错误但由于某种原因它无法创建图像。

0 个答案:

没有答案