代码之家  ›  专栏  ›  技术社区  ›  Peter C

如何使用Java调整图像大小?

  •  1
  • Peter C  · 技术社区  · 14 年前

    我有一堆48x48的图像,我需要16x16版本的,而不是存储16x16版本,我想调整他们的飞行。我当前的代码如下所示(model.icon()返回48x48图像):

    Icon icon = model.icon();
    Image image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
    return new ImageIcon(image.getScaledInstance(16, 16, Image.SCALE_AREA_AVERAGING));
    

    3 回复  |  直到 14 年前
        1
  •  4
  •   William    14 年前

    试试这个。

    ImageIcon icon = model.icon();
    Image image = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB);
    image.getGraphics().drawImage(icon.getImage(), 0, 0, 16, 16, null);
    return new ImageIcon(image);
    
        2
  •  3
  •   AdamH    14 年前

    你需要更多的信息,不仅仅是图标参考。您需要访问实际的图像。您的新图像是一个黑色方块,因为您从未设置图像的源(即,您创建一个新的黑色图像,然后缩放空图像)。

        3
  •  2
  •   andrewmu    14 年前

    你没有把图标放到图像中。如果图标是 ImageIcon ,则可以执行以下操作:

    ..
    Graphics2D g2 = image.createGraphics();
    g2.drawImage(icon.getImage(), 0, 0, 16, 16, null);
    g2.dispose();
    return new ImageIcon(image);