BufferedImage bi = null;
        Iterator readers = null;
        ImageInputStream iis = null;
        ImageReader reader = null;
        ImageReadParam param = null;
        ImageWriter writer = null;
        FileOutputStream out = null;
        FileInputStream in = null;
        try
        {
            in = new FileInputStream(strSourceFile);
            if (in == null) return 0;
            iis = ImageIO.createImageInputStream(in);
            if (iis == null) return 0;
            readers = ImageIO.getImageReaders(iis);
            if (readers == null) return 0;            if (readers.hasNext())
            {
                reader = (ImageReader) readers.next();
                writer = ImageIO.getImageWriter(reader);
            } else return -2;            reader.setInput(iis);
            param = reader.getDefaultReadParam();
            param.setSourceSubsampling(width, width, 0, 0);
            bi = reader.read(0, param);

解决方案 »

  1.   

    两个是同一个问题嘛,如下:
    String imgPath="C:\\1.jpg";
    Image img=java.awt.Toolkit.getDefaultToolkit().getImage(imgPath);
    MediaTracker mt=new MediaTracker(new Frame());
    mt.addImage(img,0);
    mt.waitForID(0);
    BufferedImage bi=new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_INT_BGR);
    Graphics2D g2d=bi.createGraphics();
    g2d.drawImage(img,0,0,null);
    这样就把图画到BufferedImage上了,而且是通过Image
      

  2.   

    to : beyond_xiruo(又再次无奈的离开) 
    ^_^^_^ 
       真是太感谢了。我以前从来没做过这方面的东西,目前实在是工作需要才开始作有关图像方面的工作,所以是个不折不扣的门外汉:)
       还有呀,在BufferedImage中有getRGB(int x,int y)这个函数,它是否就是读出指定位置的RGB值?
       那我能否直接根据文件路径,将图片放入BufferedImage中呢?好像BufferedImage没有这样的功能呀。