to zhang21cnboy(事了抚衣去,不留身与名) :还是不行,

解决方案 »

  1.   

    如果用BufferedImage类的话,可能你传见的缓冲图像的大小,width和height要和源图像的一致才可以。不然就容易出现象素无法分配。可以这样:
    public class BufferedImageTest
        extends JPanel {
      BufferedImage imageNew = null;
      public BufferedImageTest() {
        File file = new File("1.png");
        try {
          imageNew = ImageIO.read(file);
        }
        catch (IOException ex1) {
        }
        Graphics g = imageNew.getGraphics();
        }  public void paint(Graphics g) {
        Graphics2D g2d = (Graphics2D) g;
        g2d.drawImage(imageNew, new AffineTransform(1f, 0f, 0f, 1f, 0, 0), null);
      }  public static void main(String[] args) {
        JFrame frm = new JFrame();
        BufferedImageTest p = new BufferedImageTest();
        frm.getContentPane().add(new JScrollPane(p), BorderLayout.CENTER);
        frm.pack();
        frm.show();
      }
    }
      

  2.   

    我是要自己定制bufferedimage, 而不是从文件读入
      

  3.   

    下面是一点点代码,别人试成功过的,也许对你有些帮助。
    Image img=...
    int width = img.getWidth(null);
    int height = img.getHeight(null);
    BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
    Graphics g = bi.getGraphics();
    g.drawImage(img,0,0,width,height,null);
    g.dispose();