fadefilter.java
来自「Sony Ericsson手机上的Facebook客户端全套代码」· Java 代码 · 共 143 行
JAVA
143 行
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3)
// Source File Name: FadeFilter.java
package se.southend.drops.pixelfilter;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
// Referenced classes of package se.southend.drops.pixelfilter:
// Filter
public class FadeFilter
implements Filter
{
public FadeFilter()
{
}
public FadeFilter(Image fromImage)
{
setImage(fromImage);
}
public void setImage(Image fromImage)
{
if(fromImage == null)
{
return;
} else
{
int width = fromImage.getWidth();
int height = fromImage.getHeight();
int rgb[] = new int[width * height];
fromImage.getRGB(rgb, 0, width, 0, 0, width, height);
setRGB(rgb, width, height);
return;
}
}
public void setRGB(int fromRGB[], int width, int height)
{
this.fromRGB = fromRGB;
this.width = width;
this.height = height;
if(rgb == null || rgb.length != fromRGB.length)
rgb = new int[fromRGB.length];
needsRender = true;
}
public Image getImage()
{
return Image.createRGBImage(getRGB(), getWidth(), getHeight(), true);
}
public int[] getRGB()
{
return rgb;
}
public int getWidth()
{
return width;
}
public int getHeight()
{
return height;
}
public void setMode(int mode)
{
this.mode = mode;
}
public int getAlpha()
{
return alpha;
}
public void setAlpha(int alpha)
{
if(alpha == this.alpha)
{
return;
} else
{
this.alpha = alpha;
needsRender = true;
return;
}
}
public void render()
{
if(mode == 0)
rgb = fadeARGB(fromRGB, rgb, width, height, alpha);
else
rgb = fade(rgb, width, height, alpha);
needsRender = false;
}
public void paintAt(Graphics graphics, int x, int y)
{
if(needsRender)
render();
graphics.drawRGB(rgb, 0, width, x, y, width, height, true);
}
public static final int[] fade(int dest[], int width, int height, int alpha)
{
int length = width * height;
for(int i = length - 1; i >= 0; i--)
dest[i] = dest[i] & 0xffffff | alpha << 24;
return dest;
}
public static final int[] fadeARGB(int src[], int dest[], int width, int height, int alpha)
{
int length = width * height;
for(int i = length - 1; i >= 0; i--)
{
int argb = src[i];
dest[i] = argb & 0xffffff | ((argb >>> 24) * alpha >> 8) << 24;
}
return dest;
}
public static final int MODE_ARGB = 0;
public static final int MODE_RGB = 1;
protected int fromRGB[];
protected int rgb[];
protected int width;
protected int height;
protected int alpha;
protected int mode;
private boolean needsRender;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?