我需要在内在中拼接出一个图像。然后把这人图像送到时客户端。现在拼出的图像的背景都是黑色的,到客户端显示的时候就是一个有黑色方框背景的图片,很是难看。想请教一下怎样把这个黑色的背景去掉?我找了半天就是没有找到相关的资料。
   BufferedImage bufFrmImage = new BufferedImage(frameWidth,
frameHeight, BufferedImage.TYPE_INT_ARGB);
   Graphics2D  g2D = (Graphics2D) bufFrmImage.createGraphics();
   g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR,
0.0f));
    Rectangle2D.Double rect = new Rectangle2D.Double(0, 0, frameWidth,
frameHeight);
   g2D.fill(rect);
   ...下面是画图像的代码....

解决方案 »

  1.   

    int imgWidth = bufFrmImage.getWidth();
    int imgHeight = bufFrmImage.getHeight();for (int i = 0; i < imgWidth; i++) {
    for(int k = 0; k < imgHeight; k++) {
    bufFrmImage.setRGB(i, k, 0x000000);
    }
    }
      

  2.   

    首先,现另外 new 一个 BufferedImage, 比如叫做bi,在new 一个整数数组比如叫做 rgbArray然后如下:        bi = new BufferedImage(1024, 768, BufferedImage.TYPE_4BYTE_ABGR);
            rgbArray = new int[1024 * 768];
            bi.getRGB(0, 0, 1024, 768, rgbArray, 0, 1024);以后一旦想恢复,直接
            bi.setRGB(0, 0, 1024, 768, rgbArray, 0, 1024);
      

  3.   

    BufferedImage bufFrmImage = new BufferedImage(frameWidth,
    frameHeight, BufferedImage.TYPE_INT_ARGB);
       Graphics2D  g2D = (Graphics2D) bufFrmImage.createGraphics();
       g2D.setBackground(Color.WHITE);
       g2D.clearRect(0,0,frameWidth,frameHeight);
       //这样就把Graphics清成白色的了