我正在开发一个应用程序,该应用程序在文件夹中获取图像并将它们显示为缩略图,以便单独进行进一步选择和操作。下面是将它们添加到 Jtogglebuttons 的代码。
toglBtn=new JToggleButton(""+i,new ImageIcon(ImageIO.read(new File(listOfFiles[i].getAbsolutePath())).getScaledInstance(139, 163, BufferedImage.SCALE_SMOOTH)));
我在文件夹中的原始图像小于 100kb,但 Jtogglebutton 大小为 6mb。有没有办法减少这些的大小?目前它占用了我所有的堆空间并在有超过 40 个文件时给我一个内存不足错误。我已经将堆大小增加到 512MB,但是在使用 MAT 分析堆转储后,我想我需要减小缩略图大小来解决这个错误。
有什么办法可以强制缩略图成为 jpeg?或任何其他将缩略图添加到 jtogglebuttons 的方式?
最后更新:我使用缩略图将按钮的大小缩小到几 kb
try{
BufferedImage originalImage = ImageIO.read(new File(listOfFiles[i].getAbsolutePath()));
Image image =Thumbnails.of(originalImage).size(138, 163).asBufferedImage();
toglBtn=new JToggleButton(""+i,new ImageIcon(image));
}