konversi gambar ke byte array berguna untuk dapat menyimpan gambar tersebut ke database, menenskripsi gambar atau mengirimkan gambar tersebut menggunakan web services. ini berawal dari penggalaman saya saat menyimpan gambar ke database. ketika memakai MySQL gambar yang akan disimpan bisa menggunakan InputStream. tanpa harus menkonversi gambar tersebut ke array. tapi saat saya gunakan SQLite., gambar yang akan disimpan tidak bsa menggunakan InputStream namun harus menggunakan bytes.walaupun tipe data gambar di SQLite adalah Blob.

sekian penjelasan kenapa perlu menkonversi gambar ke array. :D  pada java, class yang dibutuhkan adalah ByteArrayOutputStream karena class ini menginplementasikan class outputstream yaitu sebuah data/file dapat ditulis kedalam bentuk bytes array.

Konversi Gambar ke Byte Array.

berikut adalah coding untuk menconversi gambar ke dalam bentuk bytes array :


public byte[] getByte(Image image) {
ObjectOutputStream outputStream = null;
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();
try {
outputStream = new ObjectOutputStream(arrayOutputStream);
ImageIcon icon = new ImageIcon(image);
outputStream.writeObject(icon);
outputStream.flush();
outputStream.close();
} catch (IOException ex) {
System.out.println("failed : " + ex.getMessage());
}
return arrayOutputStream.toByteArray();
}

Konversi Byte Array kembali ke Gambar.

sedangkan ini adalah coding untuk mengembalikan gambar dari data bytes array.


public Image getImages(byte[] dataBytes) {
Image image = null;
ObjectInputStream inputStream = null;
try {
inputStream = new ObjectInputStream(new ByteArrayInputStream(dataBytes));
ImageIcon icon = (ImageIcon) inputStream.readObject();
image = icon.getImage();
inputStream.close();
} catch (IOException | ClassNotFoundException ex) {
System.out.println("failed : " + ex.getMessage());
}
return image;
}

gak terlalu rumit dan panjang kan?😀

silahkan dicoba!!