亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

保存圖像時將其保存為黑色透明而不是真實圖像

保存圖像時將其保存為黑色透明而不是真實圖像

慕勒3428872 2022-06-04 16:15:42
當保存圖像時,它會變成黑色方塊而不是選擇的圖像,我希望能夠從我的計算機中保存圖像并將其保存在項目的文件夾中,以便在壓縮和發送時他們可以查看我上傳的圖像。我試過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");    }}
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

不需要逐個像素地工作,這會很慢。


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();


}

可以創建一個圖形來繪制。


有多種方法,例如在圖像的一部分透明時使用背景顏色。


查看完整回答
反對 回復 2022-06-04
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號