forked from tTh/FloatImg
+ line shifter and bla
This commit is contained in:
parent
af1a48f149
commit
864c8d2d05
|
@ -218,6 +218,10 @@ switch (idFx) {
|
||||||
retval = random_blocks(image, 70);
|
retval = random_blocks(image, 70);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case CR_shiftln0:
|
||||||
|
retval = multilines_shift_0(image, 11, 120);
|
||||||
|
break;
|
||||||
|
|
||||||
case CR_message:
|
case CR_message:
|
||||||
fprintf(stderr, "### message from pid %d, fv=%f ###\n",
|
fprintf(stderr, "### message from pid %d, fv=%f ###\n",
|
||||||
getpid(), fval);
|
getpid(), fval);
|
||||||
|
@ -289,18 +293,15 @@ return "???";
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
int crap_number_from_name(char *name)
|
int crap_number_from_name(char *name)
|
||||||
{
|
{
|
||||||
int idx, foo, retval;
|
int idx, retval;
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( '%s' )\n", __func__, name);
|
fprintf(stderr, ">>> %s ( '%s' )\n", __func__, name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
retval = -1; /* not found */
|
retval = -1; /* not found */
|
||||||
|
|
||||||
for (idx=0; CrapL[idx].id!=-1; idx++) {
|
for (idx=0; CrapL[idx].id!=-1; idx++) {
|
||||||
|
if (0 == strcmp(CrapL[idx].name, name)) {
|
||||||
foo = strcmp(CrapL[idx].name, name);
|
|
||||||
if (0 == foo) {
|
|
||||||
// fprintf(stderr, "found '%s' -> %d\n", name,
|
// fprintf(stderr, "found '%s' -> %d\n", name,
|
||||||
// CrapL[idx].id);
|
// CrapL[idx].id);
|
||||||
retval = CrapL[idx].id;
|
retval = CrapL[idx].id;
|
||||||
|
|
|
@ -2,18 +2,20 @@
|
||||||
* crapulator.h
|
* crapulator.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* some constants for effect numbers */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* the main function */
|
* the main function */
|
||||||
|
|
||||||
int crapulator(FloatImg *image, int id_effect, float fparam);
|
int crapulator(FloatImg *image, int id_effect, float fparam);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* naming system */
|
||||||
void list_crapulors(char *texte);
|
void list_crapulors(char *texte);
|
||||||
|
|
||||||
char *crap_name_from_number(int num);
|
char *crap_name_from_number(int num);
|
||||||
int crap_number_from_name(char *name);
|
int crap_number_from_name(char *name);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* this generated file contains the #define
|
||||||
|
* for symbolic name of effect ids.
|
||||||
|
*/
|
||||||
#include "crapdef.h"
|
#include "crapdef.h"
|
||||||
|
|
||||||
|
|
|
@ -22,5 +22,6 @@
|
||||||
24 bsombra 1 1.0
|
24 bsombra 1 1.0
|
||||||
25 vsglitch 1 1.0
|
25 vsglitch 1 1.0
|
||||||
26 rndblks 1 1.0
|
26 rndblks 1 1.0
|
||||||
|
27 shiftln0 1 1.0
|
||||||
99 message 1 1.0
|
99 message 1 1.0
|
||||||
-1 end 1 1.0
|
-1 end 1 1.0
|
||||||
|
|
|
@ -208,6 +208,11 @@ for (;;) {
|
||||||
value = crap_number_from_name(cptr);
|
value = crap_number_from_name(cptr);
|
||||||
// fprintf(stderr, "%s: '%s' -> %d\n", __func__,
|
// fprintf(stderr, "%s: '%s' -> %d\n", __func__,
|
||||||
// cptr, value);
|
// cptr, value);
|
||||||
|
if (value < 0) {
|
||||||
|
fprintf(stderr, "%s: '%s' not found\n",
|
||||||
|
__func__, cptr);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
foo = filterstack_add(numid, value, 1, 1.0);
|
foo = filterstack_add(numid, value, 1, 1.0);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
@ -188,4 +189,48 @@ for (y=BB; y<h-BB; y++) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* -------------------------------------------------------------- */
|
/* -------------------------------------------------------------- */
|
||||||
|
static void shifter(float *fs, float *fd, int w, int nbr)
|
||||||
|
{
|
||||||
|
int krkr;
|
||||||
|
|
||||||
|
for (krkr=0; krkr<nbr; krkr++) {
|
||||||
|
fd[krkr] = fs[(krkr+w)%nbr];
|
||||||
|
}
|
||||||
|
/* take your sixpack, film at 11 */
|
||||||
|
}
|
||||||
|
|
||||||
|
int multilines_shift_0(FloatImg *picz, int step, int nombre)
|
||||||
|
{
|
||||||
|
float *buffline, *sptr;
|
||||||
|
int idx, ypos;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %d %d )\n", __func__, picz, step, nombre);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
buffline = alloca(picz->width * sizeof(float));
|
||||||
|
if (NULL==buffline) {
|
||||||
|
fprintf(stderr, "%s: memory panic\n", __func__);
|
||||||
|
abort();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (idx=0; idx<nombre; idx++) {
|
||||||
|
ypos = rand() % picz->height;
|
||||||
|
|
||||||
|
sptr = picz->R + (ypos * picz->width);
|
||||||
|
shifter(sptr, buffline, step, picz->width);
|
||||||
|
memcpy(sptr, buffline, picz->width*sizeof(float));
|
||||||
|
|
||||||
|
sptr = picz->G + (ypos * picz->width);
|
||||||
|
shifter(sptr, buffline, step, picz->width);
|
||||||
|
memcpy(sptr, buffline, picz->width*sizeof(float));
|
||||||
|
|
||||||
|
sptr = picz->B + (ypos * picz->width);
|
||||||
|
shifter(sptr, buffline, step, picz->width);
|
||||||
|
memcpy(sptr, buffline, picz->width*sizeof(float));
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* -------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|
|
@ -12,5 +12,6 @@ int poke_a_random_pixel(FloatImg *picz, float fval, int kaboo);
|
||||||
|
|
||||||
int vertical_singlitch(FloatImg *picz, int xpos, float fv, float omega,
|
int vertical_singlitch(FloatImg *picz, int xpos, float fv, float omega,
|
||||||
float phi);
|
float phi);
|
||||||
|
int multilines_shift_0(FloatImg *picz, int step, int nombre);
|
||||||
|
|
||||||
/* this is a wtf file */
|
/* this is a wtf file */
|
||||||
|
|
|
@ -229,9 +229,6 @@ for (idx=0; idx<globbuf.gl_pathc; idx++) {
|
||||||
/* XXX THIS CODE DON'T WORK !!! */
|
/* XXX THIS CODE DON'T WORK !!! */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "\ngenerated %d png files\n", ipng);
|
fprintf(stderr, "\ngenerated %d png files\n", ipng);
|
||||||
|
@ -273,11 +270,11 @@ fprintf(stderr, "*** %s : compiled by tTh, %s %s\n", __FILE__,
|
||||||
__DATE__, __TIME__);
|
__DATE__, __TIME__);
|
||||||
fimg_print_version(2);
|
fimg_print_version(2);
|
||||||
|
|
||||||
//#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
/* this is for the debug off calling shellscript */
|
/* this is for the debug off calling shellscript */
|
||||||
for (foo=0; foo<argc; foo++)
|
for (foo=0; foo<argc; foo++)
|
||||||
fprintf(stderr, "%5d %s\n", foo, argv[foo]);
|
fprintf(stderr, "%5d %s\n", foo, argv[foo]);
|
||||||
//#endif
|
#endif
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "E:F:hLS:vw:x:")) != -1) {
|
while ((opt = getopt(argc, argv, "E:F:hLS:vw:x:")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
|
|
|
@ -69,6 +69,9 @@ return 0;
|
||||||
int help(void)
|
int help(void)
|
||||||
{
|
{
|
||||||
puts("yolo!");
|
puts("yolo!");
|
||||||
|
|
||||||
|
puts("\t-L\tlist available filters");
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
/* ----------------------------------------------------------- */
|
/* ----------------------------------------------------------- */
|
||||||
|
@ -103,11 +106,14 @@ 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, "hF:i:o:vx")) != -1) {
|
while ((opt = getopt(argc, argv, "hF:i:Lo:vx")) != -1) {
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
case 'h': help(); break;
|
case 'h': help(); break;
|
||||||
case 'F': filterchain = optarg; break;
|
case 'F': filterchain = optarg; break;
|
||||||
case 'i': infile = optarg; break;
|
case 'i': infile = optarg; break;
|
||||||
|
case 'L':
|
||||||
|
list_crapulors("available filters");
|
||||||
|
exit(0);
|
||||||
case 'o': outfile = optarg; break;
|
case 'o': outfile = optarg; break;
|
||||||
case 'v': verbosity++; break;
|
case 'v': verbosity++; break;
|
||||||
case 'x': experiment(); break;
|
case 'x': experiment(); break;
|
||||||
|
|
Loading…
Reference in New Issue