enlarge yout glitcher

master
le vieux 2 years ago
parent 3706ad4d98
commit 954de623ab
  1. 15
      Fonderie/glitches.c
  2. 3
      Fonderie/glitches.h
  3. 12
      Fonderie/interpolator.c

@ -10,12 +10,12 @@
extern int verbosity;
/* -------------------------------------------------------------- */
int kill_a_random_line(FloatImg *pvictime, float fval, int notused)
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, notused);
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, bits);
#endif
line = rand() % pvictime->height;
@ -27,9 +27,12 @@ if (verbosity > 1) {
offset = pvictime->width * line;
for (xpos=0; xpos<pvictime->width; xpos++) {
pvictime->R[offset+xpos] = fval;
pvictime->G[offset+xpos] = 0.0;
pvictime->B[offset+xpos] = fval;
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;
@ -41,7 +44,7 @@ int idx, foo;
/* Frag the pixels */
for (idx=0; idx<number; idx++) {
foo = kill_a_random_line(who, fval, 0);
foo = kill_a_random_line(who, fval, rand() & 0x0f);
if (foo) abort();
}

@ -2,8 +2,7 @@
* glitches.h
*/
int kill_a_random_line(FloatImg *pvictime, float level, int notused);
int kill_a_random_line(FloatImg *pvictime, float level, int bits);
int kill_a_few_lines(FloatImg *who, float fval, int number);
/* this is a wtf file */

@ -45,8 +45,13 @@ if (0 == globbuf.gl_pathc) {
}
foo = fimg_fileinfos(globbuf.gl_pathv[0], iarray);
if (FIMG_TYPE_RGB != iarray[2]) {
fprintf(stderr, "can work only on RGB fimg picture, was %d\n",
iarray[2]);
exit(1);
}
w = iarray[0], h = iarray[1];
fprintf(stderr, "\tfirst image size : %dx%d\n", w, h);
fprintf(stderr, "first image size : %dx%d\n", w, h);
fimg_create(&A, w, h, 3); pFirst = &A;
fimg_create(&B, w, h, 3); pSecond = &B;
@ -78,7 +83,7 @@ for (idx=0; idx<globbuf.gl_pathc; idx++) {
fimg_interpolate(pSecond, pFirst, &Out, coef);
/* here we can insert the output filter */
kill_a_few_lines(&Out, 3.14159, 500);
kill_a_few_lines(&Out, 150.5, 5+(rand()%20));
sprintf(line, "%s/%05d.png", outdir, ipng);
foo = fimg_save_as_png(&Out, line, 0);
@ -127,8 +132,9 @@ fprintf(stderr, "*** %s : compiled by tTh, %s %s\n", __FILE__,
__DATE__, __TIME__);
fimg_print_version(2);
while ((opt = getopt(argc, argv, "v")) != -1) {
while ((opt = getopt(argc, argv, "hv")) != -1) {
switch(opt) {
case 'h': help(); break;
case 'v': verbosity++; break;
}
}

Loading…
Cancel
Save