Estoy tratando de obtener el bytearray de una imagen búfer, pero la longitud de mi ByteArrayOutputstream siempre es cero y no tengo bytes. Esto es lo que estoy haciendoBufferedImage to Bytes Java
cualquier idea por qué esto no está funcionando
BufferedImage scaledPicture = .....
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(scaledPicture, extension, baos);
baos.flush();
byte[] toByteArray = baos.toByteArray();
baos.close();
return toByteArray;
¿Alguna idea?
Muchas gracias por eso. Se devuelve falso, por lo que no se encontró ningún escritor. Como la imagen se carga desde el navegador, ¿cómo determino el formato o cómo especifico un formato en la llamada ImageIO.write? –
@Farouk Alhassan Yo trataría de usar 'ImagIO.getImageWritersBySuffix' y ver si le devuelve' 'ImageWriter's. Si es así, puede usarlos fácilmente con su método 'write' para escribir su' RenderedImage'. El método que estás usando en este momento es simplemente un simple envoltorio alrededor de eso. – Melv
Muchas gracias. Se corrigió después de un día. fue puramente porque una unidad vieja no probada estaba calculando erróneamente la extensión del archivo, devolviendo .jpeg en lugar de jpeg ¡por lo tanto un día perdido! Lecciones aprendidas. De todos modos, sé más hoy que ayer, así que estoy agradecido. tx –