Compare commits

...

5 Commits

Author SHA1 Message Date
tTh
a4b7f5c21c nap time commit 2023-02-13 17:56:08 +01:00
tTh
36d30b76d7 fix bad parameters 2023-02-13 17:43:08 +01:00
tTh
e00423ed9b cosmetic 2023-02-13 14:27:01 +01:00
tTh
3e66e822f2 better err msg 2023-02-13 10:58:21 +01:00
tTh
a449c53592 cosmetic 2023-02-13 10:57:14 +01:00
14 changed files with 64 additions and 46 deletions

View File

@ -41,19 +41,19 @@ singlepass: singlepass.c ${DEPS} ${OBJS} Makefile
# some files are magically generated, sorry.
#
crapdef.h: crapulors.liste Makefile craplist2h.awk
./craplist2h.awk < $< | tee $@
< $< ./craplist2h.awk > $@
crapstr.h: crapulors.liste Makefile craplist2str.awk
./craplist2str.awk < $< | tee $@
< $< ./craplist2str.awk > $@
# ---------------------------------------------------------
#
# a lot of silly functions
#
crapulator.o: crapulator.c ${DEPS} Makefile
crapulator.o: crapulator.c $(DEPS) Makefile
gcc ${COPT} -c $<
fifo.o: fifo.c fifo.h Makefile
fifo.o: fifo.c fifo.h $(DEPS) Makefile
gcc ${COPT} -c $<
sfx.o: sfx.c ${DEPS} Makefile

View File

@ -6,18 +6,19 @@
#
BEGIN {
print "// -----------------------------------"
print "// -------------------------------------"
print "// generated file, do not edit by hand !"
print "// -----------------------------------"
print "// -------------------------------------"
}
# $1 is the badly brain-designed numeric id
# $2 is the user name of the filter
{
printf "#define CR_%s (%d)\n", $2, $1
name = sprintf("CR_%s", $2)
printf "#define %-15s (%d)\n", name, $1
}
END {
print "// generated file, do not edit by hand !"
print "\n// generated file, do not edit by hand !"
}

View File

@ -5,10 +5,10 @@
# is includet by 'crapulator.c'
#
BEGIN {
print "// -----------------------------------"
print "// generated file, do not edit by hand";
print "// -----------------------------------"
print "Crapulor CrapL[] = {";
print "// -------------------------------------"
print "// generated file, do not edit by hand !";
print "// -------------------------------------"
print "Crapulor CrapL[] = {";
}
# $1 is the badly brain-designed numeric id
@ -16,12 +16,13 @@ BEGIN {
# $3 and $4 are two not used parameters
#
{
printf " { CR_%s, \"%s\", %d, %f }, // id=%d\n",
$2, $2, $3, $4, $1;
name = sprintf("CR_%s", $2)
printf " { %-12s, \"%s\", %d, %f }, // #%d\n",
name, $2, $3, $4, $1;
}
END {
print " { -1, NULL }"
print " };"
print "// generated file, do not edit by hand"
print "// ! generated file, do not edit by hand !"
}

View File

@ -195,6 +195,8 @@ int ret;
memset(&tmp, 0, sizeof(FloatImg));
fimg_clone(img, &tmp, 0);
ret = fimg_pixelize_h_rnd(img, &tmp, k);
if (verbosity > 1) fprintf(stderr, "in %s, pixelize H rnd -> %d\n",
__func__, ret);
fimg_copy_data(&tmp, img);
fimg_destroy(&tmp);
@ -434,9 +436,12 @@ switch (idFx) {
case CR_pixelizh:
retval = run_pixelize_0(image, 8);
break;
case CR_pixelizv:
retval = run_pixelize_0(image, 32);
break;
case CR_pixelrand:
retval = run_pixelize_random(image, -1);
retval = run_pixelize_random(image, 16);
break;
case CR_splitlevel:
@ -444,10 +449,10 @@ switch (idFx) {
break;
case CR_decrgbzc:
retval = run_decomprgbz_color(image, -1);
retval = run_decomprgbz_color(image, 0);
break;
case CR_decrgbzg:
retval = run_decomprgbz_gray(image, -1);
retval = run_decomprgbz_gray(image, 0);
break;
case CR_hilightr:

View File

@ -151,13 +151,11 @@ int pass, szimg, osrc, odst;
szimg = picture->width * picture->height;
for (pass=0; pass<szimg/32; pass++) {
osrc = rand() % szimg;
odst = rand() % szimg;
picture->R[odst] = (picture->R[osrc] + picture->R[odst]) / 2.0;
picture->G[odst] = (picture->G[osrc] + picture->G[odst]) / 2.0;
picture->B[odst] = (picture->B[osrc] + picture->B[odst]) / 2.0;
}
return 0;
@ -180,7 +178,6 @@ for (y=0; y<picture->height; y+=16) {
un_petit_flou_8x8(picture, x, y+8);
un_petit_flou_8x8(picture, x+8, y+8);
}
}
}

View File

@ -22,19 +22,17 @@ do_an_effect_pass()
{
local effect=$1
local ddir=$2
figlet "$effect" ; echo
figlet "$effect" ; echo
echo " ===> " $ddir
ls $ddir | wc
rm -f $ddir/?????.png
ls $ddir | wc
$SPASS -F $effect \
-g $SRCDIR/'?????.fimg' \
-O $ddir \
-r 2
ls $ddir | wc
-r 1
}
# --------------------------------------------
@ -47,6 +45,17 @@ local sdir=$2
echo "====== Linkfarming from " $sdir \
"====== avec" $(ls $sdir | wc -l) "images"
mogrify \
-font Utopia-Bold \
-pointsize 90 \
-kerning 9 \
-fill Gray80 \
-stroke Gray20 \
-strokewidth 3 \
-gravity South-East \
-annotate +45+125 $effname \
$sdir/*.png
for img in $(ls -1 $sdir/?????.png)
do
@ -54,16 +63,6 @@ do
# echo "image = " $img
# echo "link = " $linkname
mogrify \
-font Noto-Serif-Bold \
-pointsize 70 \
-kerning 4 \
-fill Gray90 \
-stroke Gray10 \
-strokewidth 3 \
-annotate +35+85 $effname \
$img
ln --force --symbolic $img $linkname
LINKNUM=$(( LINKNUM + 1 ))
@ -75,7 +74,7 @@ echo "linkfarming done"
do_all_the_effects()
{
EFFECTS=$( $SPASS -L | sort )
EFFECTS=$( $SPASS -L | sort --reverse )
for effect in $EFFECTS
do
@ -99,8 +98,6 @@ done
rm -v -f $LINKFARM/L?????.png
do_all_the_effects
banner encoding

View File

@ -20,7 +20,7 @@
* https://git.tetalab.org/tTh/FloatImg
*/
#define FIMG_VERSION (219)
#define FIMG_VERSION (220)
#define RELEASE_NAME ("noname")
/* XXX add a test for stdint.h / uint32_t XXX */

View File

@ -44,6 +44,9 @@ fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
psrc, pdst, k);
#endif
/*
* XXX useless message ?
*/
if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); }
fimg_clear(pdst);
@ -102,6 +105,9 @@ fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
psrc, pdst, k);
#endif
/*
* XXX useless message ?
*/
if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); }
fimg_clear(pdst);

View File

@ -32,7 +32,7 @@ switch(largeur) {
case 8: case 16: case 32:
break;
default:
fprintf(stderr, "pixeliz bad width %d\n", largeur);
fprintf(stderr, "%s: bad width %d\n", __func__, largeur);
return -77;
}

View File

@ -1,7 +1,12 @@
# Images en virgule flottante, video 4 linux
Quelques gruikwares en rapport avec la capture vidéo.
## grabvidseq
Logiciel de capture d'une image flottante par accumulation de trames.
```
tth@lubitel:~/Devel/FloatImg/v4l2$ ./grabvidseq -h
options :
@ -18,6 +23,10 @@ options :
-v increase verbosity
```
Les formats d'exportation sont : Fimg, Png, Tiff, Pnm et Fits. Chacun d'eux
ayant son propre lot de limitations et de bugs. Le choix est fait
selon l'extension du nom de fichier demandé~: ".fimg", ".tiff"...
## video-infos
```

View File

@ -78,7 +78,7 @@ if (-1 == stat(device, &st)) {
}
if (!S_ISCHR(st.st_mode)) {
fprintf(stderr, "%s is no device\n", device);
fprintf(stderr, "%s is not a char device\n", device);
exit(EXIT_FAILURE);
}

View File

@ -267,7 +267,7 @@ type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
xioctl(fd, VIDIOC_STREAMON, &type);
#if 1
if (verbosity) fprintf(stderr,"pid %d is going to grab %d picz...\n",
if (verbosity) fprintf(stderr,"pid %d is going to grab %d frames...\n",
getpid(), nbre_capt);
#endif

View File

@ -26,7 +26,9 @@ int vfd, foo;
struct v4l2_format fmt;
// struct v4l2_requestbuffers reqbuf;
#if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, dev, k);
#endif
vfd = open_device(dev);
if (verbosity) fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
@ -34,7 +36,7 @@ if (verbosity) fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
memset(&fmt, 0, sizeof(fmt));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
foo = ioctl(vfd, VIDIOC_G_FMT, &fmt);
fprintf(stderr, "%s : ioctl -> %d\n", __func__, foo);
if (verbosity) fprintf(stderr, "%s: ioctl -> %d\n", __func__, foo);
if (0 != foo) {
perror("ioctl G_FMT");
return -1;
@ -82,7 +84,7 @@ while ((opt = getopt(argc, argv, "d:hK:v")) != -1) {
if (verbosity) fimg_print_version(0);
foo = essai_get_fmt(device, K);
fprintf(stderr, "\tessai -> %d\n", foo);
if (verbosity || foo) fprintf(stderr, "%s: essai -> %d\n", __func__, foo);
return 0;
}

View File

@ -218,7 +218,7 @@ return "???";
/* --------------------------------------------------------------------- */
int pr_v4l2_format(char *txt, struct v4l2_format *ptr)
{
fprintf(FP, "## v4l2_format, %-15s %p\n", txt, ptr);
fprintf(FP, "## v4l2_format, %-15s, %p\n", txt, ptr);
fprintf(FP, " type %d %s\n", ptr->type,/* enum v4l2_buf_type */
fmttype2str(ptr->type));