//相关文章图象细化算法实现的java applet源代码
import java.awt.Color;
import java.awt.Graphics;
public class PseudoScreen
{
PseudoScreen(int i, int j)
{
B = new int[i][j];
wid = i;
hgt = j;
}
public void Screen(int i, Graphics g1, boolean flag)
{
psize = i;
g = g1;
if(flag)
grid();
}
private void grid()
{
g.setColor(Color.white);
g.fillRect(0, 0, wid * psize, hgt * psize);
g.setColor(Color.red);
for(int i = 0; i < wid * psize; i += psize)
{
for(int j = 0; j < hgt * psize; j += psize)
g.drawRect(i, j, psize, psize);
}
}
public void setPixel(int i, int j, int k)
{
Color acolor[] = {
Color.white, Color.blue, Color.green, Color.cyan, Color.red, Color.magenta, Color.yellow, Color.orange, Color.pink, Color.lightGray,
Color.black
};
if(i < 0 || i > wid - 1 || j < 0 || j > hgt - 1)
return;
if(k < -10)
k = 0;
else
if(k > 10)
k = k % 10 + 1;
if(k >= 0)
B[i][j] = k;
else
k = -k;
g.setColor(acolor[k]);
g.fillRect(psize * i, psize * j, psize, psize);
if(k == 0)
{
g.setColor(Color.red);
g.drawRect(psize * i, psize * j, psize, psize);
}
}
public int getPixel(int i, int j)
{
if(i < 0 || i > wid - 1 || j < 0 || j > hgt - 1)
return -1;
else
return B[i][j];
}
public void clearPixel(int i, int j)
{
if(i < 0 || i > wid - 1 || j < 0 || j > hgt - 1)
{
return;
} else
{
B[i][j] = 0;
g.setColor(Color.white);
g.fillRect(psize * i, psize * j, psize, psize);
g.setColor(Color.red);
g.drawRect(psize * i, psize * j, psize, psize);
return;
}
}
public void setImage()
{
g.setColor(Color.blue);
for(int i = 0; i < wid; i++)
{
for(int j = 0; j < hgt; j++)
if(getPixel(i, j) != 0)
g.fillRect(psize * i, psize * j, psize, psize);
}
}
private Graphics g;
public int B[][];
int wid;
int hgt;
int psize;
}