我先在持有了一个ImageIcon对象icon,如何知道这个这个 icon 的大小。目标是,想实现从icon 转成一个 InputStream, 以字节流的形式把它存入数据库中。

解决方案 »

  1.   

    嗯,呵呵……
    我想看看大家有没有这类型的经历……
    ImageIO 下 
    估计行的话,也就static ImageInputStream createImageInputStream(Object input) 
              返回一个 ImageInputStream,它将从给定 Object 中获取输入。 
    先去试试去……请大家,继续发表意见啦……
      

  2.   

    大小?指长宽吗,还是文件大小长宽:
    ImageIcon icon = .....;
    int height = icon.getIconHeight();
    int width = icon.getIconWidth();存入数据库用imageIO可以转的: ImageIcon icon = ...;//你己经得到了此图片,并加载完成了
    Image img = icon.getImage();
    //这里使用默认的图片类型做为例子,具体的看自己情况
            BufferedImage bufferedImage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB); 
            Graphics g = bufferedImage.createGraphics(); 
            g.drawImage(img, 0, 0, null); 
            g.dispose(); 

    BufferedImage bimgSource=null;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write(bimgSource, "png", baos);
    ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
    int iBytesToCopy = baos.size();//图片大小 //存入数据库
    PreparedStatement pstmt=.....;
    pstmt.setBinaryStream(1, bais, iBytesToCopy);
    .....
      

  3.   

    嗯,多谢各位!我昨天把程序改为持有原始的ByteArrayInputStream,使用时生成将它生成ImageIcon了,不是办法的办法!呵呵,我下去好好研究下,4楼的代码……