/* * glitches.c */ #include #include #include "../floatimg.h" extern int verbosity; /* -------------------------------------------------------------- */ int kill_a_random_line(FloatImg *pvictime, float fval, int bits) { int line, xpos, offset; #if DEBUG_LEVEL fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, bits); #endif line = rand() % pvictime->height; if (verbosity > 1) { fprintf(stderr, "%s: try to kill line %d\n", __func__, line); } offset = pvictime->width * line; for (xpos=0; xposwidth; xpos++) { if (bits & 1) pvictime->R[offset+xpos] = fval; else pvictime->R[offset+xpos] = 0.0; if (bits & 2) pvictime->G[offset+xpos] = fval; else pvictime->G[offset+xpos] = 0.0; if (bits & 4) pvictime->B[offset+xpos] = fval; else pvictime->B[offset+xpos] = 0.0; } return 0; } /* -------------------------------------------------------------- */ int kill_a_few_lines(FloatImg *who, float fval, int number) { int idx, foo; /* Frag the pixels */ for (idx=0; idxwidth * (y+ypos)); for (x=0; x<8; x++) { sr += picture->R[off]; sg += picture->G[off]; sb += picture->B[off]; off++; } } sr /= 64.0; sg /= 64.0; sb /= 64.0; for (y=0; y<8; y++) { off = xpos + (picture->width * (y+ypos)); for (x=0; x<8; x++) { picture->R[off] = sr; picture->G[off] = sg; picture->B[off] = sb; off++; } } return 0; } /* -------------------------------------------------------------- */ int un_moyen_flou_8x8(FloatImg *picture, int xpos, int ypos) { int i, j, x, y; for (i=y=0; i<8; i++, y+=8) { for (j=x=0; j<8; j++, x+=8 ) { un_petit_flou_8x8(picture, x+xpos, y+ypos); } } return -1; } /* -------------------------------------------------------------- */ int poke_a_random_pixel(FloatImg *picz, float fval, int kaboo) { return -1; } /* -------------------------------------------------------------- */