我有一個大的PNG圖像(600x600),我的應用程序使圖像不透明並寫出文件。問題是ImageIO的性能很糟糕。還有其他的選擇嗎?我需要圖像是不透明的。下面是我在做什麼:使用帶有alpha的PNG改進Java ImageIO讀取/寫入
BufferedImage buf = ImageIO.read(localUrl);
float[] scales = {1f, 1f, 1f, 1f}; // R, G, B, A
float[] offsets = {0f, 0f, 0f, 1f}; // R, G, B, A
RescaleOp rescaler = new RescaleOp(scales, offsets, null);
BufferedImage opaque = rescaler.filter(buf, null);
File outputfile = new File(localUrl.getPath());
ImageIO.write(opaque, "png", outputfile);
不知道這是否會對您有所幫助。我有一個開源的Java圖像庫[這裏](https://github.com/dragon66/icafe),它可以讀取寫PNG w/o alpha。默認情況下,不使用Alpha通道編寫,您可以選擇速度的壓縮級別。 – dragon66
你有沒有關於保存基於alpha和基於alpha的圖像的指標? – MadProgrammer
因此,我在1600x1440的圖像上使用您的代碼進行了快速測試,加載時間爲0.280秒,重新採樣爲0.183秒,寫入時間爲0.784秒......我不確定我會打電話給那些可怕的... (和我的電腦負載〜75%的CPU使用率之前我跑了測試,所以是的,很多事情) – MadProgrammer