forked from tTh/FloatImg
enlarge yout glitcher
This commit is contained in:
parent
3706ad4d98
commit
954de623ab
|
@ -10,12 +10,12 @@
|
||||||
extern int verbosity;
|
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;
|
int line, xpos, offset;
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, notused);
|
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, pvictime, bits);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
line = rand() % pvictime->height;
|
line = rand() % pvictime->height;
|
||||||
|
@ -27,9 +27,12 @@ if (verbosity > 1) {
|
||||||
offset = pvictime->width * line;
|
offset = pvictime->width * line;
|
||||||
|
|
||||||
for (xpos=0; xpos<pvictime->width; xpos++) {
|
for (xpos=0; xpos<pvictime->width; xpos++) {
|
||||||
pvictime->R[offset+xpos] = fval;
|
if (bits & 1) pvictime->R[offset+xpos] = fval;
|
||||||
pvictime->G[offset+xpos] = 0.0;
|
else pvictime->R[offset+xpos] = 0.0;
|
||||||
pvictime->B[offset+xpos] = fval;
|
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;
|
return 0;
|
||||||
|
@ -41,7 +44,7 @@ int idx, foo;
|
||||||
|
|
||||||
/* Frag the pixels */
|
/* Frag the pixels */
|
||||||
for (idx=0; idx<number; idx++) {
|
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();
|
if (foo) abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
* glitches.h
|
* 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);
|
int kill_a_few_lines(FloatImg *who, float fval, int number);
|
||||||
|
|
||||||
|
|
||||||
/* this is a wtf file */
|
/* this is a wtf file */
|
||||||
|
|
|
@ -45,8 +45,13 @@ if (0 == globbuf.gl_pathc) {
|
||||||
}
|
}
|
||||||
|
|
||||||
foo = fimg_fileinfos(globbuf.gl_pathv[0], iarray);
|
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];
|
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(&A, w, h, 3); pFirst = &A;
|
||||||
fimg_create(&B, w, h, 3); pSecond = &B;
|
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);
|
fimg_interpolate(pSecond, pFirst, &Out, coef);
|
||||||
|
|
||||||
/* here we can insert the output filter */
|
/* 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);
|
sprintf(line, "%s/%05d.png", outdir, ipng);
|
||||||
foo = fimg_save_as_png(&Out, line, 0);
|
foo = fimg_save_as_png(&Out, line, 0);
|
||||||
|
@ -127,8 +132,9 @@ fprintf(stderr, "*** %s : compiled by tTh, %s %s\n", __FILE__,
|
||||||
__DATE__, __TIME__);
|
__DATE__, __TIME__);
|
||||||
fimg_print_version(2);
|
fimg_print_version(2);
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "v")) != -1) {
|
while ((opt = getopt(argc, argv, "hv")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
|
case 'h': help(); break;
|
||||||
case 'v': verbosity++; break;
|
case 'v': verbosity++; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue