gpt4 book ai didi

java - 调整图像大小以适应 jLabel 问题

转载 作者:行者123 更新时间:2023-11-29 05:36:53 26 4
gpt4 key购买 nike

我想重新调整 ImageIcon 的大小以适合我的 jLabel。使用这篇文章的答案 Scale the ImageIcon automatically to label size我正在使用

public jfrmHome() {
initComponents();
this.setLocationRelativeTo(null);
ImageIcon iconimage;
iconimage = new ImageIcon(getClass().getResource("/org/me/musiconweb/resources/Music-icon.png"));
BufferedImage bi = new BufferedImage(iconimage.getIconWidth(), iconimage.getIconHeight(), BufferedImage.TYPE_INT_RGB);
Graphics g = bi.createGraphics();
iconimage.paintIcon(null, g, 0,0);
g.dispose();
BufferedImage resizedimage=resize(bi,jlblPicture.getWidth(), jlblPicture.getHeight());
ImageIcon resizedicon=new ImageIcon(resizedimage);
jlblPicture.setIcon(resizedicon);
}

这会重新调整图像的大小,但我遇到了一个小问题。图像的背景变成黑色而不是原来的白色

这个

original image

转向

error image

请问我做错了什么?

最佳答案

该图像具有透明度。因此,将 BufferedImage.TYPE_INT_RGB 更改为 BufferedImage.TYPE_INT_ARGB

在 SO 上白色 BG 上不明显,但尝试这个 SSCCE & 它变得更加清晰..

import java.net.URL;
import javax.swing.*;

class ShowImage {

public static void main(String[] args) throws Exception {
final URL url = new URL("http://i.stack.imgur.com/1yeUy.png");
Runnable r = new Runnable() {
@Override
public void run() {
JLabel l = new JLabel(new ImageIcon(url));

JOptionPane.showMessageDialog(null, l);
}
};
// Swing GUIs should be created and updated on the EDT
// http://docs.oracle.com/javase/tutorial/uiswing/concurrency
SwingUtilities.invokeLater(r);
}
}

enter image description here

关于java - 调整图像大小以适应 jLabel 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19199776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com