public void paint(Graphics g) { g.drawImage(img,0,0,this);//畫出圖片 g.drawImage(im,100,100,this);//添加半透明文字 } }
class myImage extends RGBImageFilter {//抽象類RGBImageFilter是ImageFilter的子類,繼續它實現圖象ARGB的處理 int width=0; int height=0; int alpha=0; public myImage(int width,int height,int alpha) {//構造器,用來接收需要過濾圖象的尺寸,以及透明度 this.canFilterIndexColorModel=true; //TransparentImageFilter類繼續自RGBImageFilter,它的構造函數要求傳入原始圖象的寬度和高度。該類實現了filterRGB抽象函數,缺省的方式下,該函數將x,y所標識的象素的ARGB值傳入,程序員按照一定的程序邏輯處理后返回該象素新的ARGB值 this.width=width; this.height=height; this.alpha=alpha; }
public int filterRGB(int x,int y,int rgb) { DirectColorModel dcm=(DirectColorModel)ColorModel.getRGBdefault(); //DirectColorModel類用來將ARGB值獨立分解出來 int red=dcm.getRed(rgb); int green=dcm.getGreen(rgb); int blue=dcm.getBlue(rgb); if(red==255&&green==255&&blue==255)//假如像素為白色,則讓它透明 alpha=0; return alpha<<24red<<16green<<8blue;//進行標準ARGB輸出以實現圖象過濾 } }