java—保存图像时,它将其保存为黑色透明图像,而不是真实图像

relj7zay  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(381)

当保存在它变成一个黑色的方块,而不是选择的图像,我想能够保存图像从我的电脑,并保存在文件夹中的项目,这样当压缩和发送他们可以查看我上传的图像。
我试过了 BufferedImage.TYPE_INT_ARGB 但我不知道这是不是问题所在。

private void imageToArray(){
    int width = originalBI.getWidth();
    int height = originalBI.getHeight();

    newBI = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);

    pixels = new int[width][height];

    for(int i = 0; i<width;i++){
        for(int j = 0;j<height;j++){
            pixels[i][j]=originalBI.getRGB(i,j);
        }
    }
}

private void saveImage(){
    int returnValue = saveFileChooser.showSaveDialog(this);

    if(returnValue == JFileChooser.APPROVE_OPTION) {
        try{
            ImageIO.write(newBI, "png",saveFileChooser.getSelectedFile());
            lblMessage.setText("Image File Succesfully saved");

        }catch(IOException ex){
            lblMessage.setText("Failed to save image file");
        }
    }
    else{
        lblMessage.setText("No file Choosen");
    }
}
kb5ga3dv

kb5ga3dv1#

一个人不需要一个像素一个像素地工作,这会很慢。

private void imageToArray(){
    int width = originalBI.getWidth();
    int height = originalBI.getHeight();

    newBI = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = newBI.createGraphics();
    g.drawImage(originalBI, 0, 0, width, height, null);
    g.dispose();

}

人们可以创建一个图形来绘制。
有各种各样的方法,比如使用背景色应该使图像的一部分透明。

相关问题