[Java] 画像縮小時の注意点

Javaで画像縮小時するとき、以下の様なコードを書いたとする。

  public static BufferedImage reduce1(BufferedImage image, int dw, int dh) {
    BufferedImage thumb = new BufferedImage(dw, dh, image.getType());
    thumb.getGraphics().drawImage(
      image.getScaledInstance(dw, dh, Image.SCALE_AREA_AVERAGING),
      0,
      0,
      dw,
      dh,
      null);
    return thumb;
  }

このとき、imageのタイプとimage.getType()で取得できたタイプが違う場合がある。完全にはまってしまったのでメモ。

image.getType()より、TYPE_INT_RGBが無難。「jpeg,gif,png,bmp一応全ての拡張子として保存できる」らしい。

 

参考文献

http://zattonaka.blogspot.jp/2012/10/java-jdk.html” title=”http://zattonaka.blogspot.jp/2012/10/java-jdk.html

http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html

http://natadea.wordpress.com/2008/08/24/java-imageio%E3%81%AE%E7%94%BB%E5%83%8F%E5%87%BA%E5%8A%9B%E3%81%A8colormodel%E3%81%A8%E3%81%AE%E9%96%A2%E4%BF%82/