come convertire l'immagine in array di byte in java?


Answers

Se stai usando JDK 7 puoi usare il seguente codice ..

import java.nio.file.Files;
import java.io.File;

File fi = new File("myfile.jpg");
byte[] fileContent = Files.readAllBytes(fi.toPath())
Question

Questa domanda ha già una risposta qui:

Voglio convertire un'immagine in array di byte e viceversa. Qui, l'utente inserirà il nome dell'immagine ( .jpg ) e il programma lo leggerà dal file e lo convertirà in una matrice di byte.




java.io.FileInputStream è ciò che stai cercando :-)




Usare RandomAccessFile sarebbe semplice e maneggevole.

RandomAccessFile f = new RandomAccessFile(filepath, "r");
byte[] bytes = new byte[(int) f.length()];
f.read(bytes);
f.close();



Scopri javax.imageio , in particolare ImageReader e ImageWriter come un'astrazione per leggere e scrivere file di immagini.

BufferedImage.getRGB(int x, int y) di consente di ottenere valori RGB sul pixel indicato, che può essere suddiviso in byte.

Nota: penso che tu non voglia leggere i byte grezzi, perché poi devi gestire tutta la compressione / decompressione.




Prova questo snippet di codice

BufferedImage image = ImageIO.read(new File("filename.jpg"));

// Process image

ImageIO.write(image, "jpg", new File("output.jpg"));