int[] getRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize) bufferedImage的方法,不行吗?
size:
    1 int = 4 bytes

解决方案 »

  1.   

    int bf = getRGB(int x, int y)  ;
     byte[] bmp =new byte[bf];
      

  2.   

    想得到bufferImage内容的字节数听困难的
    看jdk文档我得到如下的知识,希望对你有用
    如果可以把创建一个流去的取bufferImage的内容
    那么可以通过ImageOutputStream 的length()方法得到字节数或者用MemoryCacheImageInputStream的length()方法得到
    但使用构造MemoryCacheImageInputStream时,首先必须得到一个inputstream
    也是比较困难的我测试过用FileImageInputStream取构造一个实例读一个图像文件
    是可以得到length()也就是图像文件的大小
    但好像时多此一举我觉得要达到楼主的目的
    比较困难啊!
    大家阿可以继续讨论
      

  3.   

    受楼上的启发,我的思路(中间差一步):
    BufferedImage bi=...
    ObjectOutputStream oos=new ObjectOutputStream();
    oos.writerObject(obj);
    然后ByteArrayOutputStream类,
    有int size()方法,和byte[] toByteArray()的方法,
    应该可以满足楼主的要求。
    可是我找不到怎么把ObjectOutputStream转到ByteArrayOutputStream的办法。
    ByteArrayOutputStream并没有接收OutputStream的构造方法啊?供参考。