有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字节数组转换为图像(png)

我有一个字节[],通过从某个表中获取数据返回。我想把这个字节数组转换成png图像。 注意:我没有像其他地方类似的例子那样从图像中获取字节数组

 byte[] bytes = modelDashboardService.exportMyQueuePNG("pp83900","1");

InputStream in = new ByteArrayInputStream(bytes);

BufferedImage bImageFromConvert = ImageIO.read(in);//ImageIO.read(url);//

if(bImageFromConvert != null){
  ImageIO.write(bImageFromConvert, "png", new File(
  "D:/test1.png"));

}

My byte[] is not null but my BufferedImage is null .

请帮忙

字节[]是: [37, 80, 68, 70, 45, 49, 46, 55, 10, 37, -30, -29, -49, -45, 10, 51, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 76, 101, 110, 103, 116, 104, 32, 52, 57, 50, 47, 70, 105, 108, 116, 101, 114, 47, 70, 108, 97, 116, 101, 68, 101, 99, 111, 100, 101, 62, 62, 115, 116, 114, 101, 97, 109, 10, 120, -100, -115, -107, 65, 111, -29, 32, 16, -123, -17, -2, 21, 115, -20, 30, 66, -127, 1, -116, -113, -39, -124, -83, -68, 90, -59, -87, 67, -38, -12, -76, 90, -75, 77, -91, 85, -93, -86, -67, -12, -17, -17, 24, -127, 55, -119, 113, -99, 67, 34, -20, -9, -15, 24, 63, 6, -101, -125, -128, -103, 0, 14, -70, -46, -12, -1, 120, 40, -34, -117, -17, -66, -96, 107, -91, -63, 63, -47, 96, -90, 120, 55, 112, -66, -72, 37, -115, 51, 11, -35, 79, -64, -57, 75, 97, 21, -109, -96, -71, 6, -93, -104, -48, 64, -32, -57, 115, -79, 63, 101, -124, -78, 12, 117, -96, 80, 50, 110, 71, 40, -53, -103, -62, 64, 9, 73, 19, -14, 20, 114, -53, 74, -100, 90, 17, 75, -55, 108, 53, 69, 41, 44, 25, 87, 83, -108, -26, -126, -119, 73, 47, 109, 52, -61, 73, 47, 35, 43, -90, 39, -95, 10, -103, -55, 81, 93, -8, 18, 126, -46, -122, -36, -48, 12, 13, -97, -7, -12, 55, 81, 28, -119, -67, -105, -13, 121, 39, 121, 36, -24, 94, -50, 39, -100, -28, -111, 104, -109, 60, -110, 105, 47, -25, -61, 76, 114, 62, -59, 94, -51, -57, -73, -95, -8, -88, -85, -69, 62, -25, -108, -77, 53, 93, 114, 40, -64, 31, -118, -21, 31, -126, 34, 0, -65, 47, -82, -36, -50, 45, -74, -66, -2, -26, -1, -98, -111, 84, 45, -111, 87, -51, 10, -4, -61, -38, 117, 58, -99, -122, 35, 63, -95, 121, 8, 123, -32, 88, 47, 51, -80, -107, 33, -6, 1, -68, 104, 86, -66, 109, 126, -63, 124, -31, -21, -69, -38, 63, 12, -89, -94, -32, 97, 91, 6, 83, 55, 126, -34, -6, -29, -70, 19, 25, 43, 95, -50, 125, -90, 108, 44, 85, -40, -58, -127, -35, 114, -21, 78, -52, 34, -9, -91, -103, -62, 42, 108, -6, -40, 99, 29, 27, 38, 54, 26, -34, -76, -51, 118, -3, -69, -55, 17, -68, 12, -60, -3, -54, -75, -61, 37, 53, -57, -48, 72, -105, 44, -103, -40, -72, -92, -37, -47, 78, 55, 57, 79, 83, -122, -18, -69, -56, 51, -78, -47, -77, 117, 119, -75, -69, 119, 57, 34, 62, 70, 102, 61, -125, -126, -27, 58, 39, -77, 92, 68, -113, 67, -53, -8, 85, 58, 28, -128, -117, 12, 35, 27, 29, -87, -119, -4, 118, 19, 45, -33, 51, 47, 28, -28, -35, 113, 58, 20, 88, -123, -63, -21, -1, -9, 65, 21, -107, 82, -97, 41, -15, 6, 41, -74, 87, 110, 79, -21, 53, -52, 32, 72, 115, 86, -18, -6, -49, -53, 51, -55, 111, -5, 84, 15, -92, 25, -99, -91, 84, -12, -91, -126, -21, -35, 94, -64, -14, 13, 78, 12, -93, 76, 110, -40, -35, -96, 47, -41, 44, 13, -56, -26, 31, 113, 64, 107, -53, 10, 101, 110, 100, 115, 116, 114, 101, 97, 109, 10, 101, 110, 100, 111, 98, 106, 10, 53, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 80, 97, 114, 101, 110, 116, 32, 52, 32, 48, 32, 82, 47, 67, 111, 110, 116, 101, 110, 116, 115, 32, 51, 32, 48, 32, 82, 47, 84, 121, 112, 101, 47, 80, 97, 103, 101, 47, 82, 101, 115, 111, 117, 114, 99, 101, 115, 60, 60, 47, 88, 79, 98, 106, 101, 99, 116, 60, 60, 47, 88, 102, 49, 32, 49, 32, 48, 32, 82, 62, 62, 47, 70, 111, 110, 116, 60, 60, 47, 70, 49, 32, 50, 32, 48, 32, 82, 62, 62, 62, 62, 47, 77, 101, 100, 105, 97, 66, 111, 120, 91, 48, 32, 48, 32, 53, 57, 53, 32, 56, 52, 50, 93, 47, 82, 111, 116, 97, 116, 101, 32, 57, 48, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 50, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 66, 97, 115, 101, 70, 111, 110, 116, 47, 72, 101, 108, 118, 101, 116, 105, 99, 97, 47, 84, 121, 112, 101, 47, 70, 111, 110, 116, 47, 69, 110, 99, 111, 100, 105, 110, 103, 47, 87, 105, 110, 65, 110, 115, 105, 69, 110, 99, 111, 100, 105, 110, 103, 47, 83, 117, 98, 116, 121, 112, 101, 47, 84, 121, 112, 101, 49, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 49, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 84, 121, 112, 101, 47, 88, 79, 98, 106, 101, 99, 116, 47, 82, 101, 115, 111, 117, 114, 99, 101, 115, 60, 60, 47, 70, 111, 110, 116, 60, 60, 47, 70, 49, 32, 50, 32, 48, 32, 82, 62, 62, 62, 62, 47, 83, 117, 98, 116, 121, 112, 101, 47, 70, 111, 114, 109, 47, 66, 66, 111, 120, 91, 48, 32, 48, 32, 51, 48, 32, 49, 54, 93, 47, 77, 97, 116, 114, 105, 120, 32, 91, 49, 32, 48, 32, 48, 32, 49, 32, 48, 32, 48, 93, 47, 76, 101, 110, 103, 116, 104, 32, 52, 52, 47, 70, 111, 114, 109, 84, 121, 112, 101, 32, 49, 47, 70, 105, 108, 116, 101, 114, 47, 70, 108, 97, 116, 101, 68, 101, 99, 111, 100, 101, 62, 62, 115, 116, 114, 101, 97, 109, 10, 120, -100, 43, -28, 114, 10, -31, 50, 84, 48, 0, 66, 67, 5, 35, 32, 12, -55, -27, -46, 119, 51, 84, 48, 4, -78, -46, -72, 52, 12, 53, 67, -78, -72, 92, 67, -72, 2, -71, 0, -88, 92, 8, 34, 10, 101, 110, 100, 115, 116, 114, 101, 97, 109, 10, 101, 110, 100, 111, 98, 106, 10, 52, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 84, 121, 112, 101, 47, 80, 97, 103, 101, 115, 47, 67, 111, 117, 110, 116, 32, 49, 47, 75, 105, 100, 115, 91, 53, 32, 48, 32, 82, 93, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 54, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 84, 121, 112, 101, 47, 67, 97, 116, 97, 108, 111, 103, 47, 80, 97, 103, 101, 115, 32, 52, 32, 48, 32, 82, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 55, 32, 48, 32, 111, 98, 106, 10, 60, 60, 47, 80, 114, 111, 100, 117, 99, 101, 114, 40, 105, 84, 101, 120, 116, -82, 32, 53, 46, 53, 46, 53, 32, -87, 50, 48, 48, 48, 45, 50, 48, 49, 52, 32, 105, 84, 101, 120, 116, 32, 71, 114, 111, 117, 112, 32, 78, 86, 32, 92, 40, 65, 71, 80, 76, 45, 118, 101, 114, 115, 105, 111, 110, 92, 41, 41, 47, 77, 111, 100, 68, 97, 116, 101, 40, 68, 58, 50, 48, 49, 54, 48, 51, 50, 51, 49, 54, 51, 54, 53, 55, 43, 48, 53, 39, 51, 48, 39, 41, 47, 67, 114, 101, 97, 116, 105, 111, 110, 68, 97, 116, 101, 40, 68, 58, 50, 48, 49, 54, 48, 51, 50, 51, 49, 54, 51, 54, 53, 55, 43, 48, 53, 39, 51, 48, 39, 41, 62, 62, 10, 101, 110, 100, 111, 98, 106, 10, 120, 114, 101, 102, 10, 48, 32, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 54, 53, 53, 51, 53, 32, 102, 32, 10, 48, 48, 48, 48, 48, 48, 48, 56, 48, 54, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 55, 49, 56, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 48, 49, 53, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 49, 48, 50, 50, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 48, 53, 55, 52, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 49, 48, 55, 51, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 48, 48, 48, 48, 48, 48, 49, 49, 49, 56, 32, 48, 48, 48, 48, 48, 32, 110, 32, 10, 116, 114, 97, 105, 108, 101, 114, 10, 60, 60, 47, 82, 111, 111, 116, 32, 54, 32, 48, 32, 82, 47, 73, 68, 32, 91, 60, 98, 101, 55, 48, 97, 57, 52, 52, 57, 97, 102, 57, 50, 56, 55, 97, 54, 48, 100, 99, 53, 98, 57, 97, 48, 57, 48, 101, 49, 50, 49, 54, 62, 60, 98, 101, 55, 48, 97, 57, 52, 52, 57, 97, 102, 57, 50, 56, 55, 97, 54, 48, 100, 99, 53, 98, 57, 97, 48, 57, 48, 101, 49, 50, 49, 54, 62, 93, 47, 73, 110, 102, 111, 32,55、32、48、32、82、47、83、105、122、101、32、56、62、62、10、37、105、84、101、120、116、45、53、46、46、53、10、115、116、97、114、116、120、114、101、102、10、49、50、55、53、10、37、37、69、79、70、10]


共 (3) 个答案

  1. # 1 楼答案

    使用它:

    File file = new File(getFilesDir()+"/file.png");
    FileOutputStream fos = new FileOutputStream(file);
    
    //write your byteArray here
    fos.write(byteArray);
    fos.flush();
    fos.close();
    

    看到这个link

  2. # 2 楼答案

    尝试以下代码:

     private void saveImage(String path, final byte[] bytes) throws IOException {
            final File file = new File(path);
            final FileOutputStream fileOut = new FileOutputStream(file );
            fileOut.write(bytes);
            fileOut.flush();
            fileOut.close();
        }
    
  3. # 3 楼答案

    根据ImageIO.read(InputStream input)的文件:

    Returns a BufferedImage as the result of decoding a supplied InputStream with an ImageReader chosen automatically from among those currently registered. The InputStream is wrapped in an ImageInputStream. If no registered ImageReader claims to be able to read the resulting stream, null is returned.

    我的最佳猜测是,您从表中检索的字节数组不是来自(有效)图像