//--------------------------------------------------------------------------- void Threshold(PImage im) { for (int i = 0; i < im.width; i++) { for (int j = 0; j < im.height; j++) { color c = im.get(i,j); int r = (int)(red(c)); int g = (int)(green(c)); int b = (int)(blue(c)); // Wzór na poprawną luminancję int w = (int)(0.299 * r + 0.587 * g + 0.114 * b); w = (w < 128) ? 0 : 255; im.set(i,j,color(w,w,w)); } } im.updatePixels(); } //--------------------------------------------------------------------------- Point intToPoint(int value, int size) { value--; Point p = new Point(0,0); if (size == 1) { return p; } int d1 = size-1; int d2 = value / d1; int d3 = value % d1; int d4 = size / d1; switch (d2) { case 0 : { p.x = d3 * d4; p.y = 0; } break; case 1 : { p.x = d1; p.y = d3 * d4; } break; case 2 : { p.x = d1 - d3 * d4; p.y = d1; } break; case 3 : { p.x = 0; p.y = d1 - d3 * d4; } break; } return p; } //--------------------------------------------------------------------------- int pointToInt(Point p, int size) { int value = 0; if (p.y == 0) value = p.x; else if (p.x == size-1) value = (size -1) + p.y ; else if (p.y == size-1) value = 3 * (size-1) - p.x; else if (p.x == 0) value = 4 * (size-1) - p.y; return ++value; } //---------------------------------------------------------------------------