TITLE:RGBImageFilterでアイコンの色調を変更

RGBImageFilterでアイコンの色調を変更

編集者:Terai Atsuhiro
作成日:2006-08-21
更新日:2022-11-16 (水) 16:41:34

概要

RGBImageFilterで色調を変更したアイコンの用意し、評価用コンポーネントを作成します。

#screenshot

サンプルコード

 private final ImageProducer ip = orgIcon.getImage().getSource();
 private MyLabel makeLabel(float[] filter) {
   SelectedImageFilter sif = new SelectedImageFilter(filter);
   ImageIcon imageIcon = new ImageIcon(
     createImage(new FilteredImageSource(ip, sif)));
   return new MyLabel(imageIcon);
 }
 private class SelectedImageFilter extends RGBImageFilter {
   private final float[] filter;
   public SelectedImageFilter(float[] filter) {
     this.filter = filter;
     canFilterIndexColorModel = true;
   }
   public int filterRGB(int x, int y, int argb) {
     Color color = new Color(argb, true);
     float[] array = new float[4];
     color.getComponents(array);
     return new Color(array[0]*filter[0],
                      array[1]*filter[1],
                      array[2]*filter[2],
                      array[3]).getRGB();
   }
 }
  • &jnlp;
  • &jar;
  • &zip;

解説

RGBImageFilterを使用して、一つのアイコンから複数の色の異なるアイコンを生成しています。

上記のサンプルは、アマゾンなど*1でよく見かける5段階の評価を行うコンポーネントです。クリックしたアイコンの位置が評価レベルになります。

参考リンク

コメント