0

現在、WebからダウンロードしてJPanelに入れている画像のサイズを変更しようとしています。まず、次のコードを使用してWebから画像をダウンロードしています。

public static Image MSImageHigh(){
    URL imageUrl = null;
    try {
        imageUrl = new URL("http://www.hmdb.ca/labm/metabolites/" 
        + HMDB + "/ms/spectraH/" + HMDB + "H.png");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    Image image = Toolkit.getDefaultToolkit().createImage(imageUrl);
    return image;
}

次に、画像のサイズを変更する新しいメソッドを作成しました。

public static BufferedImage resizeImage() {
    final BufferedImage bufferedImage = new BufferedImage(300, 500,BufferedImage.TYPE_INT_RGB);
    final Graphics2D graphics2D = bufferedImage.createGraphics();

    graphics2D.setComposite(AlphaComposite.Src);
    graphics2D.drawImage(MSImageHigh(), 0, 0, 200, 200, null);
    graphics2D.dispose();

    return bufferedImage;
}

これにより、200x200ピクセルにサイズ変更された新しい画像が生成されます。実際には、200x200pxのサイズの黒い画面が表示されます。ところで、私はTYPE_INT_RGBの代わりにTYPE_INT_ARGBを使用しようとしましたが、これは完全に透明な画像を生成するため、どちらも機能しません。

4

1 に答える 1

0

ImageIO.read(imageUrl)代わりに使用しましたがToolkit.getDefaultToolkit().createImage(imageUrl)、問題は解決しました。@Hovercraft Full Of Eelsに感謝します!

于 2012-07-09T08:15:49.003 に答える