Bibliothèque de traitements d'images en virgule flottante.
http://la.buvette.org/photos/cumul/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.2 KiB
107 lines
2.2 KiB
/* |
|
SINGLE |
|
experimental and/or testing code, do not use in |
|
production. |
|
|
|
*/ |
|
|
|
#include <stdio.h> |
|
#include <string.h> |
|
#include <sys/stat.h> |
|
|
|
#include "../floatimg.h" |
|
|
|
#include "sfx.h" |
|
#include "filterstack.h" |
|
#include "crapulator.h" |
|
#include "single.h" |
|
|
|
/* -------------------------------------------------------------- */ |
|
/* |
|
* singleton/private variables |
|
*/ |
|
|
|
static int nextpng, counter; |
|
static char *destination; |
|
static int chainfilter; |
|
|
|
/* -------------------------------------------------------------- */ |
|
int single_init(int next, char *dest, int fxchain) |
|
{ |
|
int foo; |
|
struct stat stbuf; |
|
|
|
#if DEBUG_LEVEL |
|
fprintf(stderr, ">>> %s ( %d '%s' %d )\n", __func__, |
|
next, dest, fxchain); |
|
#endif |
|
|
|
nextpng = next; |
|
chainfilter = fxchain; |
|
|
|
foo = stat(dest, &stbuf); |
|
if (foo) { |
|
perror("stat dest dir"); |
|
return -2; |
|
} |
|
if (S_IFDIR != (stbuf.st_mode & S_IFMT)) { |
|
fprintf(stderr, "! %s must be a directory\n", dest); |
|
return -3; |
|
} |
|
|
|
destination = strdup(dest); /* have a static copy */ |
|
|
|
return 0; |
|
} |
|
/* -------------------------------------------------------------- */ |
|
int single_push_picture(FloatImg *pimg) |
|
{ |
|
int foo; |
|
char line[1000], buff[100]; |
|
|
|
#if DEBUG_LEVEL |
|
fprintf(stderr, ">>> %s ( %p )\n", __func__, pimg); |
|
#endif |
|
|
|
strncpy(line, destination, 100); |
|
if ('/' != line[strlen(line)-1]) { |
|
// fprintf(stderr, "adding '/'\n"); |
|
strcat(line, "/"); |
|
} |
|
|
|
// fprintf(stderr, " destdir = '%s'\n", line); |
|
sprintf(buff, "%05d.png", nextpng); |
|
strcat(line, buff); |
|
|
|
// fprintf(stderr, "writing %p to '%s'\n", pimg, line); |
|
foo = fimg_export_picture(pimg, line, 0); |
|
if (foo) { |
|
fprintf(stderr, "%s: err %d on export\n", __func__, foo); |
|
return foo; |
|
} |
|
|
|
nextpng++; counter++; |
|
|
|
return 0; |
|
} |
|
/* -------------------------------------------------------------- */ |
|
int single_print_state(char *title, int k) |
|
{ |
|
#if DEBUG_LEVEL |
|
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, title, k); |
|
#endif |
|
|
|
fprintf(stderr, "%s : %s\n", __FILE__, title); |
|
fprintf(stderr, " nextpng %d\n", nextpng); |
|
fprintf(stderr, " counter %d\n", counter); |
|
fprintf(stderr, " chainfilter %d\n", chainfilter); |
|
|
|
fprintf(stderr, " destination %s\n", destination); |
|
|
|
if (k) { |
|
/* XXX */ |
|
} |
|
|
|
return -1; |
|
} |
|
/* -------------------------------------------------------------- */
|
|
|