Java Tutorial/2D Graphics/RGBImageFilter

Материал из Java эксперт
Перейти к: навигация, поиск

Extend RGBImageFilter ColorFilter class

   <source lang="java">

import java.awt.image.RGBImageFilter; class ColorFilter extends RGBImageFilter {

 boolean red, green, blue;
 public ColorFilter(boolean r, boolean g, boolean b) {
   red = r;
   green = g;
   blue = b;
   canFilterIndexColorModel = true;
 }
 public int filterRGB(int x, int y, int rgb) {
   int r = red ? 0 : ((rgb >> 16) & 0xff);
   int g = green ? 0 : ((rgb >> 8) & 0xff);
   int b = blue ? 0 : ((rgb >> 0) & 0xff);
   return (rgb & 0xff000000) | (r << 16) | (g << 8) | (b << 0);
 }

}</source>





Extend RGBImageFilter to create AlphaFilter class

   <source lang="java">

import java.awt.image.RGBImageFilter; class AlphaFilter extends RGBImageFilter {

 int alphaLevel;
 public AlphaFilter(int alpha) {
   alphaLevel = alpha;
   canFilterIndexColorModel = true;
 }
 public int filterRGB(int x, int y, int rgb) {
   int alpha = (rgb >> 24) & 0xff;
   alpha = (alpha * alphaLevel) / 255;
   return ((rgb & 0x00ffffff) | (alpha << 24));
 }

}</source>