- 浏览: 309843 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
a455642158:
xiajy 写道他妈的都该名字了,更可恶的金山手机助手是:sj ...
解决ADB server didn't ACK问题 -
wwt455653509:
关闭tadb.exe,重启eclipse搞定
解决ADB server didn't ACK问题 -
Frederic:
感谢,真是帮了大忙!腾讯
解决ADB server didn't ACK问题 -
xiajy:
他妈的都该名字了,更可恶的金山手机助手是:sjk_daemon ...
解决ADB server didn't ACK问题 -
xiaofeilv321:
赞同
解决ADB server didn't ACK问题
import javax.microedition.lcdui.Graphics;
/*
* 图片任意角度翻转算法
* 同时实现了Nokia特有API
* author. BB
* Sprite.java
*
*
*/
public class Sprite {
/** SIN TABLE **/
public final static int SIN_TABLE[] ={
0, 4, 8, 13, 17, 22, 26, 31, 35, 39,
44, 48, 53, 57, 61, 65, 70, 74, 78, 83,
87, 91, 95, 99, 103, 107, 111, 115, 119, 123,
127, 131, 135, 138, 142, 146, 149, 153, 156, 160,
163, 167, 170, 173, 177, 180, 183, 186, 189, 192,
195, 198, 200, 203, 206, 208, 211, 213, 216, 218,
220, 223, 225, 227, 229, 231, 232, 234, 236, 238,
239, 241, 242, 243, 245, 246, 247, 248, 249, 250,
251, 251, 252, 253, 253, 254, 254, 254, 254, 254,
255, 254, 254, 254, 254, 254, 253, 253, 252, 251,
251, 250, 249, 248, 247, 246, 245, 243, 242, 241,
239, 238, 236, 234, 232, 231, 229, 227, 225, 223,
220, 218, 216, 213, 211, 208, 206, 203, 200, 198,
195, 192, 189, 186, 183, 180, 177, 173, 170, 167,
163, 160, 156, 153, 149, 146, 142, 138, 135, 131,
127, 123, 119, 115, 111, 107, 103, 99, 95, 91,
87, 83, 78, 74, 70, 65, 61, 57, 53, 48,
44, 39, 35, 31, 26, 22, 17, 13, 8, 4,
0, -4, -8, -13, -17, -22, -26, -31, -35, -39,
-44, -48, -53, -57, -61, -65, -70, -74, -78, -83,
-87, -91, -95, -99, -103, -107, -111, -115, -119, -123,
-127, -131, -135, -138, -142, -146, -149, -153, -156, -160,
-163, -167, -170, -173, -177, -180, -183, -186, -189, -192,
-195, -198, -200, -203, -206, -208, -211, -213, -216, -218,
-220, -223, -225, -227, -229, -231, -232, -234, -236, -238,
-239, -241, -242, -243, -245, -246, -247, -248, -249, -250,
-251, -251, -252, -253, -253, -254, -254, -254, -254, -254,
-255, -254, -254, -254, -254, -254, -253, -253, -252, -251,
-251, -250, -249, -248, -247, -246, -245, -243, -242, -241,
-239, -238, -236, -234, -232, -231, -229, -227, -225, -223,
-220, -218, -216, -213, -211, -208, -206, -203, -200, -198,
-195, -192, -189, -186, -183, -180, -177, -173, -170, -167,
-163, -160, -156, -153, -149, -146, -142, -138, -135, -131,
-127, -123, -119, -115, -111, -107, -103, -99, -95, -91,
-87, -83, -78, -74, -70, -65, -61, -57, -53, -48,
-44, -39, -35, -31, -26, -22, -17, -13, -8, -4
};
/** 透明 **/
public static int TRANSPARENT = 0;
/** 不透明 **/
public static int OPAQUE = 15;
/**
* 像素值
* 包含动画帧,主下标标识动画帧数,副下标的值代表像素值
*/
public short pixels[][];
/*
* 精灵的宽度
* 该版本默认精灵各个帧的宽度一样大小
*/
public short width;
/*
* 精灵的高度
* 该版本默认精灵各个帧的高度一样大小
*/
public short height;
/*
* 动画帧数
*/
public byte numOfFrame;
/*
* 当前动画帧数
*/
public int curFrame;
/*
* 构造函数
* 确保传入的各个值为合理的值
* 使用的话请自己做判断
* @param _pixels 动画的像素值
* @param _width 宽度
* @param _height 高度
*/
public Sprite(short[][] _pixels, short _width, short _height){
pixels = _pixels;
width = _width;
height = _height;
numOfFrame = (byte)_pixels.length;
curFrame = 0;
}
/*
* 构造函数
*/
public Sprite(){
}
/*
* 投影
* @param cData
* @param l
* @param i1
* @param j1
* @param k1
* @return
*/
private final short project(short cData[], int l, int i1, int j1, int k1) {
int j3 = (j1 & 0xffff) >> 8;
int k3 = (k1 & 0xffff) >> 8;
int l3 = (256 - j3) * (256 - k3);
int i4 = j3 * (256 - k3);
int j4 = (256 - j3) * k3;
int k4 = j3 * k3;
int l2 = j1 >> 16;
int i3 = k1 >> 16;
l2 %= l;
i3 %= i1;
i3 *= l;
short word0 = cData[l2 + i3];
short word2 = cData[(l2 + (i3 + l)) % (cData.length - 1)];
l2 = ++l2 % l;
short word1 = cData[l2 + i3];
short word3 = cData[(l2 + (i3 + l)) % (cData.length - 1)];
int l1 = word0 >> 12 & 0xf;
int i2 = word1 >> 12 & 0xf;
int j2 = word2 >> 12 & 0xf;
int k2 = word3 >> 12 & 0xf;
int k5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 >> 8 & 0xf;
i2 = word1 >> 8 & 0xf;
j2 = word2 >> 8 & 0xf;
k2 = word3 >> 8 & 0xf;
int l4 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 >> 4 & 0xf;
i2 = word1 >> 4 & 0xf;
j2 = word2 >> 4 & 0xf;
k2 = word3 >> 4 & 0xf;
int i5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 & 0xf;
i2 = word1 & 0xf;
j2 = word2 & 0xf;
k2 = word3 & 0xf;
int j5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
return (short) ((k5 << 12) + (l4 << + (i5 << 4) + j5);
}
/*
* 翻转
* @param count 在360度内翻转的个数
* @return 返回一个翻转后的精灵
*/
public Sprite rotate(int count) {
Sprite sprite = new Sprite();
short radius = 30;
if (width == 40 && height == 40)
radius = 57;
else if (width == 8 && height ==
radius = 12;
else if (width == 6 && height == 12)
radius = 14;
else if (width == 24 && height == 24)
radius = 34;
else if (width == 26 && height == 26)
radius = 27;
else if (width == 8 && height == 15)
radius = 17;
else if (width == 10 && height == 16)
radius = 19;
else if (width == 11 && height == 15)
radius = 19;
else
System.out.println("Wrong size: " + width + " " + width + " "+ count);
sprite.width = radius;
sprite.height = radius;
sprite.numOfFrame = (byte)count;
sprite.pixels = new short[count][];
for (int j1 = 0; j1 < count; j1++) {
sprite.pixels[j1] = new short[sprite.width * sprite.height];
int k1 = j1 * (360 / count);
short l1 = width;
short i2 = height;
width = sprite.width;
height = sprite.height;
int j2 = width / 2;
int k2 = l1 / 2;
int l2 = i2 / 2;
int i3 = SIN_TABLE[k1 % 360] << 8;
int j3 = SIN_TABLE[(k1 + 90) % 360] << 8;
int k4 = 0;
int i4 = -j2 * j3;
int j4 = -j2 * i3;
for (int l4 = 0; l4 < sprite.pixels[j1].length; l4++)
sprite.pixels[j1][l4] = (short) (TRANSPARENT << 12);
for (int i5 = 0; i5 < height; i5++) {
int k3 = -j2 * j3;
int l3 = -j2 * i3;
for (int j5 = 0; j5 < width; j5++) {
//x
int k5 = (k3 - j4 >> 16) + k2;
//y
int l5 = (i4 + l3 >> 16) + l2;
if (k5 >= 0 && l5 >= 0 && l5 < i2 && k5 < l1)
sprite.pixels[j1][k4] = project(pixels[0], l1, i2,
(k3 - j4) + (k2 << 16), i4 + l3 + (l2 << 16));
k3 += j3;
l3 += i3;
k4++;
}
i4 += j3;
j4 += i3;
k4 -= width;
k4 += sprite.width;
}
height = i2;
width = l1;
}
return sprite;
}
/*
* 绘制精灵
* 在这里实现了Nokia的特有API
* 大家可以扩展该方法
* @param g
* @param x
* @param y
* @param manipulate
*/
public void draw(Graphics g, int x, int y, int manipulate) {
drawPixels(g, true, 0, width, x, y, width,
height, manipulate, 4444);
}
public void drawPixels(Graphics g, boolean transparency,
int offset, int scanlength, int x, int y, int width, int height,
int manipulation, int format) {
int l1 = map2Manipulation(manipulation);
int j1;
int k1;
if ((l1 & 4) != 0) {
j1 = height;
k1 = width;
} else {
j1 = width;
k1 = height;
}
short newPixels[] = new short [j1 * k1];
if(manipulation == 0){
newPixels = pixels[curFrame];
}
else
for (int i2 = 0; i2 < k1; i2++) {
for (int j2 = 0; j2 < j1; j2++) {
int j = j2;
int k = i2;
if ((l1 & 1) != 0)
j = j1 - 1 - j;
if ((l1 & 2) != 0)
k = k1 - 1 - k;
if ((l1 & 4) != 0) {
int k2 = j;
j = k;
k = k2;
}
newPixels[j1 * i2 + j2] = pixels[curFrame][width * k + j];
}
}
int off = offset;
int vw = x + j1;
int vh = y + k1;
for(int idy = y; idy < vh; idy++){
int voff = off;
for(int idx = x; idx < vw; idx++){
short pixel = newPixels[voff++];
int k3 = idx;
for(; idx < vw - 1 && newPixels[voff] == pixel; voff++)
idx++;
if((pixel >> 12 & 0xff) != 0)
{
int l3 = 0xf0 & pixel << 4;
l3 |= 0xf000 & pixel << 8;
l3 |= 0xf00000 & pixel << 12;
g.setColor(l3);
g.drawLine(k3, idy, idx, idy);
}
}
off += j1;
}
}
private static int map2Manipulation(int i) throws IllegalArgumentException {
int j = 0;
if ((i & 0x2000) != 0)
j ^= 1;
if ((i & 0x4000) != 0)
j ^= 2;
switch (i & 0xffff9fff) {
case 90: // 'Z'
j ^= 6;
break;
case 180:
j ^= 3;
break;
case 270:
j ^= 5;
break;
default:
throw new IllegalArgumentException();
case 0: // '\0'
break;
}
return j;
}
}
/*
* 图片任意角度翻转算法
* 同时实现了Nokia特有API
* author. BB
* Sprite.java
*
*
*/
public class Sprite {
/** SIN TABLE **/
public final static int SIN_TABLE[] ={
0, 4, 8, 13, 17, 22, 26, 31, 35, 39,
44, 48, 53, 57, 61, 65, 70, 74, 78, 83,
87, 91, 95, 99, 103, 107, 111, 115, 119, 123,
127, 131, 135, 138, 142, 146, 149, 153, 156, 160,
163, 167, 170, 173, 177, 180, 183, 186, 189, 192,
195, 198, 200, 203, 206, 208, 211, 213, 216, 218,
220, 223, 225, 227, 229, 231, 232, 234, 236, 238,
239, 241, 242, 243, 245, 246, 247, 248, 249, 250,
251, 251, 252, 253, 253, 254, 254, 254, 254, 254,
255, 254, 254, 254, 254, 254, 253, 253, 252, 251,
251, 250, 249, 248, 247, 246, 245, 243, 242, 241,
239, 238, 236, 234, 232, 231, 229, 227, 225, 223,
220, 218, 216, 213, 211, 208, 206, 203, 200, 198,
195, 192, 189, 186, 183, 180, 177, 173, 170, 167,
163, 160, 156, 153, 149, 146, 142, 138, 135, 131,
127, 123, 119, 115, 111, 107, 103, 99, 95, 91,
87, 83, 78, 74, 70, 65, 61, 57, 53, 48,
44, 39, 35, 31, 26, 22, 17, 13, 8, 4,
0, -4, -8, -13, -17, -22, -26, -31, -35, -39,
-44, -48, -53, -57, -61, -65, -70, -74, -78, -83,
-87, -91, -95, -99, -103, -107, -111, -115, -119, -123,
-127, -131, -135, -138, -142, -146, -149, -153, -156, -160,
-163, -167, -170, -173, -177, -180, -183, -186, -189, -192,
-195, -198, -200, -203, -206, -208, -211, -213, -216, -218,
-220, -223, -225, -227, -229, -231, -232, -234, -236, -238,
-239, -241, -242, -243, -245, -246, -247, -248, -249, -250,
-251, -251, -252, -253, -253, -254, -254, -254, -254, -254,
-255, -254, -254, -254, -254, -254, -253, -253, -252, -251,
-251, -250, -249, -248, -247, -246, -245, -243, -242, -241,
-239, -238, -236, -234, -232, -231, -229, -227, -225, -223,
-220, -218, -216, -213, -211, -208, -206, -203, -200, -198,
-195, -192, -189, -186, -183, -180, -177, -173, -170, -167,
-163, -160, -156, -153, -149, -146, -142, -138, -135, -131,
-127, -123, -119, -115, -111, -107, -103, -99, -95, -91,
-87, -83, -78, -74, -70, -65, -61, -57, -53, -48,
-44, -39, -35, -31, -26, -22, -17, -13, -8, -4
};
/** 透明 **/
public static int TRANSPARENT = 0;
/** 不透明 **/
public static int OPAQUE = 15;
/**
* 像素值
* 包含动画帧,主下标标识动画帧数,副下标的值代表像素值
*/
public short pixels[][];
/*
* 精灵的宽度
* 该版本默认精灵各个帧的宽度一样大小
*/
public short width;
/*
* 精灵的高度
* 该版本默认精灵各个帧的高度一样大小
*/
public short height;
/*
* 动画帧数
*/
public byte numOfFrame;
/*
* 当前动画帧数
*/
public int curFrame;
/*
* 构造函数
* 确保传入的各个值为合理的值
* 使用的话请自己做判断
* @param _pixels 动画的像素值
* @param _width 宽度
* @param _height 高度
*/
public Sprite(short[][] _pixels, short _width, short _height){
pixels = _pixels;
width = _width;
height = _height;
numOfFrame = (byte)_pixels.length;
curFrame = 0;
}
/*
* 构造函数
*/
public Sprite(){
}
/*
* 投影
* @param cData
* @param l
* @param i1
* @param j1
* @param k1
* @return
*/
private final short project(short cData[], int l, int i1, int j1, int k1) {
int j3 = (j1 & 0xffff) >> 8;
int k3 = (k1 & 0xffff) >> 8;
int l3 = (256 - j3) * (256 - k3);
int i4 = j3 * (256 - k3);
int j4 = (256 - j3) * k3;
int k4 = j3 * k3;
int l2 = j1 >> 16;
int i3 = k1 >> 16;
l2 %= l;
i3 %= i1;
i3 *= l;
short word0 = cData[l2 + i3];
short word2 = cData[(l2 + (i3 + l)) % (cData.length - 1)];
l2 = ++l2 % l;
short word1 = cData[l2 + i3];
short word3 = cData[(l2 + (i3 + l)) % (cData.length - 1)];
int l1 = word0 >> 12 & 0xf;
int i2 = word1 >> 12 & 0xf;
int j2 = word2 >> 12 & 0xf;
int k2 = word3 >> 12 & 0xf;
int k5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 >> 8 & 0xf;
i2 = word1 >> 8 & 0xf;
j2 = word2 >> 8 & 0xf;
k2 = word3 >> 8 & 0xf;
int l4 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 >> 4 & 0xf;
i2 = word1 >> 4 & 0xf;
j2 = word2 >> 4 & 0xf;
k2 = word3 >> 4 & 0xf;
int i5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
l1 = word0 & 0xf;
i2 = word1 & 0xf;
j2 = word2 & 0xf;
k2 = word3 & 0xf;
int j5 = l1 * l3 + i2 * i4 + j2 * j4 + k2 * k4 >> 16;
return (short) ((k5 << 12) + (l4 << + (i5 << 4) + j5);
}
/*
* 翻转
* @param count 在360度内翻转的个数
* @return 返回一个翻转后的精灵
*/
public Sprite rotate(int count) {
Sprite sprite = new Sprite();
short radius = 30;
if (width == 40 && height == 40)
radius = 57;
else if (width == 8 && height ==
radius = 12;
else if (width == 6 && height == 12)
radius = 14;
else if (width == 24 && height == 24)
radius = 34;
else if (width == 26 && height == 26)
radius = 27;
else if (width == 8 && height == 15)
radius = 17;
else if (width == 10 && height == 16)
radius = 19;
else if (width == 11 && height == 15)
radius = 19;
else
System.out.println("Wrong size: " + width + " " + width + " "+ count);
sprite.width = radius;
sprite.height = radius;
sprite.numOfFrame = (byte)count;
sprite.pixels = new short[count][];
for (int j1 = 0; j1 < count; j1++) {
sprite.pixels[j1] = new short[sprite.width * sprite.height];
int k1 = j1 * (360 / count);
short l1 = width;
short i2 = height;
width = sprite.width;
height = sprite.height;
int j2 = width / 2;
int k2 = l1 / 2;
int l2 = i2 / 2;
int i3 = SIN_TABLE[k1 % 360] << 8;
int j3 = SIN_TABLE[(k1 + 90) % 360] << 8;
int k4 = 0;
int i4 = -j2 * j3;
int j4 = -j2 * i3;
for (int l4 = 0; l4 < sprite.pixels[j1].length; l4++)
sprite.pixels[j1][l4] = (short) (TRANSPARENT << 12);
for (int i5 = 0; i5 < height; i5++) {
int k3 = -j2 * j3;
int l3 = -j2 * i3;
for (int j5 = 0; j5 < width; j5++) {
//x
int k5 = (k3 - j4 >> 16) + k2;
//y
int l5 = (i4 + l3 >> 16) + l2;
if (k5 >= 0 && l5 >= 0 && l5 < i2 && k5 < l1)
sprite.pixels[j1][k4] = project(pixels[0], l1, i2,
(k3 - j4) + (k2 << 16), i4 + l3 + (l2 << 16));
k3 += j3;
l3 += i3;
k4++;
}
i4 += j3;
j4 += i3;
k4 -= width;
k4 += sprite.width;
}
height = i2;
width = l1;
}
return sprite;
}
/*
* 绘制精灵
* 在这里实现了Nokia的特有API
* 大家可以扩展该方法
* @param g
* @param x
* @param y
* @param manipulate
*/
public void draw(Graphics g, int x, int y, int manipulate) {
drawPixels(g, true, 0, width, x, y, width,
height, manipulate, 4444);
}
public void drawPixels(Graphics g, boolean transparency,
int offset, int scanlength, int x, int y, int width, int height,
int manipulation, int format) {
int l1 = map2Manipulation(manipulation);
int j1;
int k1;
if ((l1 & 4) != 0) {
j1 = height;
k1 = width;
} else {
j1 = width;
k1 = height;
}
short newPixels[] = new short [j1 * k1];
if(manipulation == 0){
newPixels = pixels[curFrame];
}
else
for (int i2 = 0; i2 < k1; i2++) {
for (int j2 = 0; j2 < j1; j2++) {
int j = j2;
int k = i2;
if ((l1 & 1) != 0)
j = j1 - 1 - j;
if ((l1 & 2) != 0)
k = k1 - 1 - k;
if ((l1 & 4) != 0) {
int k2 = j;
j = k;
k = k2;
}
newPixels[j1 * i2 + j2] = pixels[curFrame][width * k + j];
}
}
int off = offset;
int vw = x + j1;
int vh = y + k1;
for(int idy = y; idy < vh; idy++){
int voff = off;
for(int idx = x; idx < vw; idx++){
short pixel = newPixels[voff++];
int k3 = idx;
for(; idx < vw - 1 && newPixels[voff] == pixel; voff++)
idx++;
if((pixel >> 12 & 0xff) != 0)
{
int l3 = 0xf0 & pixel << 4;
l3 |= 0xf000 & pixel << 8;
l3 |= 0xf00000 & pixel << 12;
g.setColor(l3);
g.drawLine(k3, idy, idx, idy);
}
}
off += j1;
}
}
private static int map2Manipulation(int i) throws IllegalArgumentException {
int j = 0;
if ((i & 0x2000) != 0)
j ^= 1;
if ((i & 0x4000) != 0)
j ^= 2;
switch (i & 0xffff9fff) {
case 90: // 'Z'
j ^= 6;
break;
case 180:
j ^= 3;
break;
case 270:
j ^= 5;
break;
default:
throw new IllegalArgumentException();
case 0: // '\0'
break;
}
return j;
}
}
发表评论
-
RSS
2011-05-05 10:18 0RSS手机阅读 -
checkout lwuit源代码
2010-12-07 16:22 1198步骤一:安装SVN 步骤二:去 LWUIT 官网免费注册一个 ... -
wave混音的实现(2)
2010-11-11 20:43 2362关于混音算法,参考的是http://jacky-zhang.i ... -
混音算法
2010-11-11 20:41 4946一、最简单的混音算法 现在一般的软件混音算法是对输入的音频数据 ... -
wave混音的实现(1)
2010-11-11 20:36 2174先看关于wav文件的头信息 下面是封装好的一个辅助类。用于生 ... -
直接通过链接打开模拟器
2010-03-30 22:13 1042提示:需要JDK1.5 或以上支持 在jad的url之前添加 ... -
j2me优化秘密
2008-04-25 13:36 1703以下是经验总结: *只优化需要的代码 *只在有价值的地方优化 ... -
OpenBaseMovil
2008-04-17 11:05 1479http://www.openbasemovil.org/do ... -
Forum_Nokia_Technical_Library_v1_30_en(chm)
2008-04-16 16:13 1100Forum Nokia Technical Library ... -
mwt
2008-04-10 13:16 1400自己写了一个demo及一些练习 -
Different platform, different keycodes
2008-04-03 09:55 1507package opusmicro.keycode.tes ... -
floggy
2008-03-27 14:31 1301As J2ME developers we couldn't ... -
Canvas翻页效果
2008-03-26 16:01 2631仅供交流学习 -
Canvas下调用输入法
2008-03-26 15:45 2360示例程序。 -
J2ME中文的支持问题
2008-03-11 14:41 1462在使用MotoJ2SDK进行J2ME应用程序的开发,经常会遇到 ... -
camera support
2008-03-11 12:48 1458microedition.platform 平台名称,如j ... -
keycodes on different devices
2008-03-11 11:50 1140Device UP DOWN LEFT RIG ... -
各品牌手机键值
2008-03-11 11:48 2276原文(http://www.jum.cn/bbs/archiv ... -
A J2ME FAQ
2008-03-11 11:41 1769J2ME technologies What are the ... -
J2MEKNOWLEDGE
2008-01-24 18:46 1059example
相关推荐
J2me中任意角度图片旋转 J2me中任意角度图片旋转
在手机上实现任意角度翻转 txt文本 /** 透明 **/ public static int TRANSPARENT = 0; /** 不透明 **/ public static int OPAQUE = 15;
j2me版A星寻路算法,适合RPG游戏中自动寻路...
j2me版A*寻路算法,实例程序,能运行,内有详细的注释
J2ME任意角旋转图片的算法研究 (注意:使用Office 2007打开)
能在j2me项目使用zip技术和gzip压缩解压
J2ME插值算法实现图片的放大缩小 J2ME插值算法实现图片的放大缩小
j2me透明泡泡碰撞小程序,有小小BUG,不影响运行。其中碰撞响应算法希望有高手改进。。作者QQ 359103820
a* 寻路算法,j2me a* 寻路算法,j2me a* 寻路算法,j2me a* 寻路算法,j2me
自己做的扫雷代码,图片自己画的,使用了递归算法,基本实现扫雷的功能,按5开方块,按1标志旗子。
J2ME中平方根算法!J2ME中平方根算法!J2ME中平方根算法!
http j2me 图片上传http j2me 图片上传http j2me 图片上传http j2me 图片上传
在j2me中,通过对像素点的操作,完成对图片的任意角度的旋转.
j2me实现的des加密解密算法 j2me实现的des加密解密算法 j2me实现的des加密解密算法
J2ME插值算法实现图片的放大缩小方法,难得的好资料,欢迎下载使用!
J2ME开发中彩色转灰度算法的应用 J2ME开发中彩色转灰度算法的应用
J2ME 图片处理教程,使用J2ME处理图片,让图片转换有翻书的效果。
j2me 图片像书翻页的效果 j2me 图片像书翻页的效果 j2me 图片像书翻页的效果 j2me 图片像书翻页的效果
j2me图片编辑器 j2me 手机游戏图片编辑器
基于j2me的图片特效(缩放,裁剪,调整大小,镜像,对比度亮度调整,黑白,线条,粉笔画)