There are many situations where we need to convert an image to a byte array. The following are the java code for converting an image to a byte array, and then convert byte array back to image.
package images;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
public class ByteArrayImage{
public static void main(String[] args) {
try {
File file = new File("C:\\images\\origen\\foto1.jpg");
System.out.println(file.exists() + "!!");
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
System.out.println("read " + readNum + " bytes,");
}
} catch (IOException ex) {
Logger.getLogger(ByteArrayImage.class.getName()).log(Level.SEVERE, null, ex);
}
//bytes is the ByteArray we need
byte[] bytes = bos.toByteArray();
//////////////////////////////////////////////////////////////////////////////////////////////////////
File newFile= new File("C:\\images\\destino\\imgTest-"+System.currentTimeMillis()+".jpg");
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytes));
ImageIO.write(imag, "jpg", newFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Suerte!!!
package images;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
public class ByteArrayImage{
public static void main(String[] args) {
try {
File file = new File("C:\\images\\origen\\foto1.jpg");
System.out.println(file.exists() + "!!");
FileInputStream fis = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum);
System.out.println("read " + readNum + " bytes,");
}
} catch (IOException ex) {
Logger.getLogger(ByteArrayImage.class.getName()).log(Level.SEVERE, null, ex);
}
//bytes is the ByteArray we need
byte[] bytes = bos.toByteArray();
//////////////////////////////////////////////////////////////////////////////////////////////////////
File newFile= new File("C:\\images\\destino\\imgTest-"+System.currentTimeMillis()+".jpg");
BufferedImage imag=ImageIO.read(new ByteArrayInputStream(bytes));
ImageIO.write(imag, "jpg", newFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Suerte!!!
No hay comentarios:
Publicar un comentario