ColorConvertOpで画像をグレイスケールに変換

編集者:Terai Atsuhiro
作成日:2005-11-21
更新日:2022-12-09 (金) 12:45:40

概要

ColorConvertOpを使って画像をグレイスケールに変換します。

http://terai.xrea.jp/swing/colorconvertop/screenshot.png

サンプルコード

Image img = icon1.getImage();
BufferedImage source = new BufferedImage(
    img.getWidth(this), img.getHeight(this),
    BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = source.createGraphics();
g.drawImage(img, 0, 0, this);
g.dispose();
ColorConvertOp colorConvert = new ColorConvertOp(
    ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage destination = colorConvert.filter(source, null);
icon2 = new ImageIcon(destination);

解説

用意したアイコンから、BufferedImageを作成し、これをColorConvertOp#filterメソッドを使ってグレイスケールに変換しています。

上記のサンプルでは、ラベルをクリックすると元画像とグレイスケール画像とが切り替わるようになっています。

参考リンク

コメント