已詢問here和here - 但兩者的所有答案都不起作用(我花了一個多小時嘗試了所有答案)。用透明像素填充緩衝圖像
問題的一部分我認爲背景需要設置爲白色,alpha爲0。這樣,對於不支持alpha的程序或格式,顏色是白色而不是黑色。
所以我的問題是,我如何將創建的BufferedImage設置爲全透明白色的背景?
我的代碼(其設置爲不透明的白色):
image = new BufferedImage((sectPage.getPaperWidth().getValue() * dpi)/1440,
(sectPage.getPaperHeight().getValue() * dpi)/1440,
BufferedImage.TYPE_INT_ARGB);
// bugbug - https://stackoverflow.com/questions/321736/how-to-set-dpi-information-in-an-image
graphics = image.createGraphics();
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_FRACTIONALMETRICS, RenderingHints.VALUE_FRACTIONALMETRICS_ON);
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
// bugbug - want all clear
graphics.setColor(new Color(255, 255, 255));
graphics.fillRect(0,0,(sectPage.getPaperWidth().getValue() * dpi)/1440, (sectPage.getPaperHeight().getValue() * dpi)/1440);
還試圖使在彩色用α設置爲0和的setBackground()。在這兩種情況下都有背景背景。
例如,在構造函數'Color(int r,int g,int b,int a)'的幫助下創建一個帶alpha通道的'Color'。 –
@ Jean-BaptisteYunès我應該說我嘗試過 - 變黑了。 –
你期望什麼?你以後對圖像做了什麼? –