/*************************************************************************************/
/* Definition einer Dithermatrix mit Routinen dafuer */
/*************************************************************************************/
private static final int DITHER_DIM = 8; // 8x8-Dithermatrix
private static final int[][] dit_mat =
{ { 0,32, 8,40, 2,34,10,42}, // 64-elementige Dithermatrix:
{48,16,56,24,50,18,58,26}, // Bei Grauwert k werden alle
{12,44, 4,36,14,46, 6,38}, // Pixel i,j auf schwarz
{60,28,52,20,62,30,54,22}, // gesetzt, fuer die gilt:
{ 3,35,11,43, 1,33, 9,41}, // dit_mat[i%8,j%8] < k
{51,19,59,27,49,17,57,25},
{15,47, 7,39,13,45, 5,37},
{63,31,55,23,61,29,53,21} };
boolean kleiner_schwelle( // testet die Dither-Matrix
Point p ) // bezueglich des Punktes
{
int x = p.x; int y = p.y;
if (x<0) x=DITHER_DIM - (Math.abs(x)%DITHER_DIM); // falls x negativ
if (y<0) y=DITHER_DIM - (Math.abs(y)%DITHER_DIM); // falls y negativ
return (dit_mat[x%DITHER_DIM][y%DITHER_DIM] < schwelle);
}
int grauwert( // liefert den Grauwert
int i, int j ) // an Position i, j
{
return(dit_mat[i][j]);
}
|