forked from tTh/FloatImg
enlarge yout glitcher
This commit is contained in:
parent
3706ad4d98
commit
954de623ab
|
@ -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…
Reference in New Issue