0

白い背景ではなく透明なJavaディスプレイの画像からpngを作成しようとしています。new Color(0,0,0,0) で alpha を 0 に設定しようとしました - 背景はまだ白く見えますか?

私はBufferedImageを使用しています

            WritableRaster raster = onscreenImage.getRaster();
            WritableRaster newRaster;
            newRaster = raster.createWritableChild(0, 0, 幅, 高さ, 0, 0, 新しい int[] {0, 1, 2});
            DirectColorModel cm = (DirectColorModel) onscreenImage.getColorModel();
            DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),
                                                          cm.getRedMask(),
                                                          cm.getGreenMask(),
                                                          cm.getBlueMask());
            BufferedImage rgbBuffer = new BufferedImage(newCM, newRaster, false, null);
            { ImageIO.write(rgbBuffer, suffix, file); を試してください。}
            catch (IOException e) { e.printStackTrace(); }
4

1 に答える 1

0

カラーモデルでアルファ成分を指定していません。この方法で試してください:

newRaster = raster.createWritableChild(0, 0, width, height, 0, 0, null);
DirectColorModel cm = (DirectColorModel) onscreenImage.getColorModel();
DirectColorModel newCM = new DirectColorModel(cm.getPixelSize(),
                                                      cm.getRedMask(),
                                                      cm.getGreenMask(),
                                                      cm.getBlueMask(),
                                                      cm.getAlphaMask());
于 2013-03-27T18:44:46.913 に答える