2011-02-22 35 views
5

Me gustaría convertir una imagen en una matriz de bytes, luego convertir esa matriz de bytes en una cadena. Además, me gustaría convertir esa cadena a una matriz de bytes, y finalmente volver a una imagen. ¿Cómo puedo lograr esto? Cualquier ayuda será apreciada.Imagen a matriz de bytes a cadena (y viceversa)

+4

Lo han intentado hasta ahora? ¿Cuál de estos pasos te está causando más problemas? –

+0

Si nos dice por qué, entonces la gente puede considerar sugerir alternativas, ya que tal vez esta no sea realmente la solución al problema; sin embargo, podría ser más elaborado. –

+0

Estos dos enlaces pueden ayudarlo - http://stackoverflow.com/questions/3211156/how-to-convert-image-to-byte-array-in-java y http://stackoverflow.com/questions/1580038/ byte-array-to-image-file – CoolBeans

Respuesta

6
  1. Uso ImageIO.write(..) y aprobar un ByteArrayOutputStream. Luego llame al stream.toByteArray() - usted tiene los bytes.

  2. Utilice base64 o hexadecimal para representar la matriz de bytes como cadena - commons-codec tiene Base64 y Hex que permiten la conversión en ambas direcciones. Así que ahora tiene la cadena

  3. Ver 2 - convertir de cadena a matriz de bytes. Ahora tiene el byte[] nuevamente.

  4. Uso ImageIO.read(..) y aprobar un new ByteArrayInputStream(bytes)

(para el punto 2 y 3 se puede uso new String(bytes, "utf-8") y string.getBytes("utf-8"), pero prefieren base 64)

+0

http://www.programcreek.com/2009/02/java-convert-image-to-byte-array-convert-byte-array-to-image/ como este? pero estoy usando jdk 6 pero no puedo encontrar la clase ImageIO !! – Adham

+0

@adham - 'javax.imageio.ImageIO'. Use un IDE para organizar sus importaciones, lo encontraría de inmediato. – Bozho

+0

@adham - sí, exactamente como se muestra en el enlace. Simplemente no use 'com.sun..internal' - obtenga Apache commons-codec. – Bozho

Cuestiones relacionadas