1

jLabel に合わせて ImageIcon のサイズを変更したいと考えています。この投稿の回答を使用して、使用しているラベルのサイズに合わせて ImageIcon を自動的にスケーリングします

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

これにより画像のサイズが変更されますが、少し問題があります。画像の背景が白ではなく黒になる

これ

元の画像

に変わります

エラー画像

私は何を間違っていますか?

4

3 に答える 3

0

画像の背景が透明です。したがって、新しく作成された不透明なイメージに描画すると、黒く表示されます。使用する

g.setColor(Color.WHITE);
g.fillRect(0, 0, jlblPicture.getWidth(), jlblPicture.getHeight());

白い背景が必要な場合。透明な背景の場合は、代わりに TYPE_INT_ARGB 画像を描画します。

于 2013-10-05T16:12:16.723 に答える