Сравнить коммиты

..

Нет общих коммитов. «152bb72522f3466a437492b8d6684a0c0fa60026» и «0def451bf46146bb25b3fbc7d85bdfeed77affa2» имеют совершенно разные истории.

8 изменённых файлов: 17 добавлений и 95 удалений

Просмотреть файл

@ -5,27 +5,10 @@ savons faire des images **floues***. L'étape suivante, les plus
pervers d'entre vous le savent déja, est celle de la création pervers d'entre vous le savent déja, est celle de la création
de **films flous**. de **films flous**.
À l'heure actuelle, il y a deux programmes distincts. Le premier
(fonderie) fait une moyenne mobile sur N images consécutives,
et le second (interpolator) fait un fondu-enchainé de N pas
entre deux images consécutives.
Mais avant et après un de ces deux traitements, il y a des chaines
de filtres...
## Chaine de filtres
Ce système connait un certain nombre de filtres et d'effets spéciaux
destinés à la kitchitude du produit final. Ils peuvent être chainés
les uns après les autres, à l'entrée et à la sortie du process
de floutagement.
## Fonderie ## Fonderie
Le programme principal, utilisé à partir de la ligne de commande Le programme principal, utilisé à partir de la ligne de commande
avec une foule d'options aux mnémoniques abscons et à la syntaxe avec une foule d'options aux mnémoniques abscons.
perverse.
Rassurez-vous, en général il est wrappable dans des scripts Rassurez-vous, en général il est wrappable dans des scripts
écrits en Bash. Il est même possible un jour qu'ils puissent lire des écrits en Bash. Il est même possible un jour qu'ils puissent lire des
@ -44,8 +27,8 @@ options:
-O output directory -O output directory
-T fifo size -T fifo size
-v increase verbosity -v increase verbosity
-E input effect chain -w input effect
-F output effect chain -x output effect
``` ```
## exemple d'utilisation ## exemple d'utilisation
@ -60,11 +43,10 @@ GRABDIR="/spool/tth/fonderie"
FONDEUR="$HOME/Devel/FloatImg/Fonderie/fonderie" FONDEUR="$HOME/Devel/FloatImg/Fonderie/fonderie"
GLOB=${GRABDIR}'/?????.fimg' GLOB=${GRABDIR}'/?????.fimg'
${FONDEUR} -T 40 -I "$GLOB" -E 10 -T 30 -F 2:7 ${FONDEUR} -v -T 40 -I "$GLOB" -w 10 -x 0
``` ```
Votre machine va maintenant mouliner avec entrain, et Ensuite il suffit d'encoder toutes les images générées dans
ensuite il suffit d'encoder toutes les images générées dans
`p8/` (répertoire de sortie par défaut) `p8/` (répertoire de sortie par défaut)
avec une incantation de ffmpeg : avec une incantation de ffmpeg :
@ -85,10 +67,12 @@ criant de documentation...
## Interpolator ## Interpolator
Un logiciel dont l'inspiration vient du passé et les améliorations Un logiciel dont l'inspiration vient du passé et d'importantes
d'une résidence à Terre-Blanque, ça ne peut pas être complètement amélioration de Terre-Blanque, ça ne peut
malsain. pas être complètement malsain.
Mais il reste encore pas mal de choses à faire pour le mettre
en prod' un trolldi soir.
## Conclusion ## Conclusion

Просмотреть файл

@ -183,9 +183,6 @@ switch (idFx) {
case 17: case 17:
retval = mirror_split(image, 0); retval = mirror_split(image, 0);
break; break;
case 18:
retval = upside_down(image);
break;
/* here are the glitches */ /* here are the glitches */
case 24: /* experiment ! */ case 24: /* experiment ! */
@ -220,7 +217,6 @@ switch (num) {
case 0: return "none"; case 0: return "none";
case 8: return "ctr2x2"; case 8: return "ctr2x2";
case 13: return "fltr3x3"; case 13: return "fltr3x3";
case 18: return "updown";
} }
return "???"; return "???";

Просмотреть файл

@ -76,7 +76,7 @@ if (numid < 0 || numid > NUMBER_OF_STACK) {
fprintf(stderr, "--- %2d -- %-20s --------\n", numid, txt); fprintf(stderr, "--- %2d -- %-20s --------\n", numid, txt);
// fprintf(stderr, "stack at %p, size %d, current %d\n", // fprintf(stderr, "stack at %p, size %d, current %d\n",
// f_slots, nbre_filters, idx_slot); // f_slots, nbre_filters, idx_slot);
fprintf(stderr, "idx ___ fx# _ name ________ ival _ fval ___\n"); fprintf(stderr, "idx fx# name ival fval\n");
for (idx=0; idx<f_stacks[numid].count; idx++) { for (idx=0; idx<f_stacks[numid].count; idx++) {
@ -122,9 +122,7 @@ for (idx=0; idx<f_stacks[numid].count; idx++) {
foo = crapulator(target, eff, fv); foo = crapulator(target, eff, fv);
if (foo) { if (foo) {
fprintf(stderr, fprintf(stderr, "crapulator error %d\n", foo);
"crapulator give me error %d on effect %d\n",
foo, eff);
return foo; return foo;
} }
} }

Просмотреть файл

@ -12,7 +12,6 @@
#include "fonctions.h" #include "fonctions.h"
#include "crapulator.h" #include "crapulator.h"
#include "filterstack.h"
/* -------------------------------------------------------------- */ /* -------------------------------------------------------------- */
/* global vars from main /* global vars from main

Просмотреть файл

@ -76,8 +76,7 @@ for (idx=0; idx<nombre; idx++) {
return -1; return -1;
} }
if (verbosity) if (verbosity)
fprintf(stderr, "%5d %s %10.3f\r", fprintf(stderr, "%5d %s %f\r", idx, filename, metrique);
idx, filename, metrique);
idxvalues[idx].idx = idx; idxvalues[idx].idx = idx;
idxvalues[idx].value = metrique; idxvalues[idx].value = metrique;
average += (double)metrique; average += (double)metrique;

Просмотреть файл

@ -18,59 +18,6 @@
*/ */
extern int verbosity; extern int verbosity;
/* -------------------------------------------------------------- */
/* nouveau du 19 decembre 2020, pour le grand ecran de da Scritch */
int upside_down(FloatImg *pimg)
{
float *rowpix;
float *Ps, *Pd;
int Os, Od; /* offset of lines */
int wsz;
int ya, y2;
if (verbosity>1) fprintf(stderr, "%s: image width is %d\n",
__func__, pimg->width);
rowpix = calloc(pimg->width, sizeof(float));
if (NULL==rowpix) {
fprintf(stderr, "%s : memory full\n", __func__);
exit(1);
}
wsz = pimg->width * sizeof(float);
if (verbosity>1) fprintf(stderr, "%s: wsx = %d\n", __func__, wsz);
for (ya=0; ya<pimg->height/2; ya++) {
y2 = pimg->height - (ya+1);
Os = (pimg->width * ya);
Od = (pimg->width * y2);
/* let's go, crash coredumping... */
Ps = pimg->R + Os;
Pd = pimg->R + Od;
memcpy(rowpix, Ps, wsz);
memcpy(Ps, Pd, wsz);
memcpy(Pd, rowpix, wsz);
Ps = pimg->G + Os;
Pd = pimg->G + Od;
memcpy(rowpix, Ps, wsz);
memcpy(Ps, Pd, wsz);
memcpy(Pd, rowpix, wsz);
Ps = pimg->B + Os;
Pd = pimg->B + Od;
memcpy(rowpix, Ps, wsz);
memcpy(Ps, Pd, wsz);
memcpy(Pd, rowpix, wsz);
}
free(rowpix);
return 0;
}
/* -------------------------------------------------------------- */ /* -------------------------------------------------------------- */
/* nouveau du 9 decembre 2020, en ecoutant le Fermion raconter du /* nouveau du 9 decembre 2020, en ecoutant le Fermion raconter du
superbe portnawak */ superbe portnawak */
@ -166,7 +113,7 @@ return 0;
int trinarize(FloatImg *pimg, int notused) int trinarize(FloatImg *pimg, int notused)
{ {
float mm[6], mRa, mGa, mBa, mRb, mGb, mBb; float mm[6], mRa, mGa, mBa, mRb, mGb, mBb;
float *fptr; float val, *fptr;
int foo, size; int foo, size;
#if DEBUG_LEVEL #if DEBUG_LEVEL

Просмотреть файл

@ -6,7 +6,6 @@
int bouger_les_pixels(FloatImg *pimg, int kaboo); int bouger_les_pixels(FloatImg *pimg, int kaboo);
int mirror_split(FloatImg *pimg, int kaboo); int mirror_split(FloatImg *pimg, int kaboo);
int upside_down(FloatImg *pimg);
int des_bords_sombres_a(FloatImg *pimg, int offset); int des_bords_sombres_a(FloatImg *pimg, int offset);

Просмотреть файл

@ -76,7 +76,7 @@ int main(int argc, char *argv[])
{ {
int foo; int foo;
int opt; int opt;
char *filterchain = "18"; char *filterchain = "0";
fprintf(stderr, "*** %s : compiled by tTh, %s %s\n", __FILE__, fprintf(stderr, "*** %s : compiled by tTh, %s %s\n", __FILE__,
__DATE__, __TIME__); __DATE__, __TIME__);
@ -100,7 +100,7 @@ if (foo) {
exit(1); exit(1);
} }
foo = essai_filterstack("01137.fimg"); foo = essai_filterstack("mire.fimg");
if (foo) { if (foo) {
fprintf(stderr, "err %d in essai_filterstack\n", foo); fprintf(stderr, "err %d in essai_filterstack\n", foo);
exit(1); exit(1);