forked from tTh/FloatImg
new func: fimg_do_stripes(&fimg, 0);
This commit is contained in:
parent
eedc9197db
commit
56073c0c80
@ -20,7 +20,7 @@
|
|||||||
* https://git.tetalab.org/tTh/FloatImg
|
* https://git.tetalab.org/tTh/FloatImg
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FIMG_VERSION (201)
|
#define FIMG_VERSION (202)
|
||||||
#define RELEASE_NAME ("noname")
|
#define RELEASE_NAME ("noname")
|
||||||
|
|
||||||
/* XXX add a test for stdint.h / uint32_t XXX */
|
/* XXX add a test for stdint.h / uint32_t XXX */
|
||||||
@ -254,6 +254,7 @@ int fimg_displacement_0(FloatImg *psrc, FloatImg *pdst, int flags);
|
|||||||
/* module funcs/rampes.c */
|
/* module funcs/rampes.c */
|
||||||
int fimg_hdeg_a(FloatImg *img, double dcoef);
|
int fimg_hdeg_a(FloatImg *img, double dcoef);
|
||||||
int fimg_vdeg_a(FloatImg *img, double dcoef);
|
int fimg_vdeg_a(FloatImg *img, double dcoef);
|
||||||
|
int fimg_do_stripes(FloatImg *img, int mode);
|
||||||
|
|
||||||
/* FIMG native file module */
|
/* FIMG native file module */
|
||||||
int fimg_fileinfos(char *fname, int *datas);
|
int fimg_fileinfos(char *fname, int *datas);
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
@ -23,8 +24,7 @@ if (FIMG_TYPE_RGB != img->type) {
|
|||||||
fprintf(stderr, "%s bad type\n", __func__);
|
fprintf(stderr, "%s bad type\n", __func__);
|
||||||
return -6;
|
return -6;
|
||||||
}
|
}
|
||||||
for (x=0; x<img->width; x++)
|
for (x=0; x<img->width; x++) {
|
||||||
{
|
|
||||||
value = (float)x / (float)img->width;
|
value = (float)x / (float)img->width;
|
||||||
value *= dcoef;
|
value *= dcoef;
|
||||||
for (y=0; y<img->height; y++) {
|
for (y=0; y<img->height; y++) {
|
||||||
@ -51,11 +51,10 @@ if (FIMG_TYPE_RGB != img->type) {
|
|||||||
fprintf(stderr, "%s bad type\n", __func__);
|
fprintf(stderr, "%s bad type\n", __func__);
|
||||||
return -6;
|
return -6;
|
||||||
}
|
}
|
||||||
for (y=0; y<img->height; y++)
|
for (x=0; x<img->width; x++) {
|
||||||
{
|
value = (float)x / (float)img->width;
|
||||||
value = (float)y / (float)img->height;
|
|
||||||
value *= dcoef;
|
value *= dcoef;
|
||||||
for (x=0; x<img->width; x++) {
|
for (y=0; y<img->height; y++) {
|
||||||
fimg_plot_rgb(img, x, y, value, value, value);
|
fimg_plot_rgb(img, x, y, value, value, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -63,3 +62,47 @@ for (y=0; y<img->height; y++)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
|
/* nouveau 19 septembre 2022 */
|
||||||
|
|
||||||
|
int fimg_do_stripes(FloatImg *img, int mode)
|
||||||
|
{
|
||||||
|
int x, y, quad;
|
||||||
|
float *ligne;
|
||||||
|
float fr, fg, fb;
|
||||||
|
|
||||||
|
fprintf(stderr, ">>> %s ( %p %d )\n", __func__, img, mode);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* allocate and fill a lookup table
|
||||||
|
*/
|
||||||
|
if (NULL==(ligne=malloc(img->width*sizeof(float)))) {
|
||||||
|
fprintf(stderr, "%s: malloc fail\n", __func__);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
for (x=0; x<img->width; x++)
|
||||||
|
ligne[x] = (float)x / (float)img->width;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* build the pixels
|
||||||
|
*/
|
||||||
|
for (y=0; y<img->height; y++)
|
||||||
|
{
|
||||||
|
quad = (y*4) / img->height ;
|
||||||
|
for (x=0; x<img->width; x++) {
|
||||||
|
fr = fg = fb = ligne[x];
|
||||||
|
switch(quad) {
|
||||||
|
case 0: fg = fb = 0; break;
|
||||||
|
case 1: fr = fb = 0; break;
|
||||||
|
case 2: fr = fg = 0; break;
|
||||||
|
case 3: break;
|
||||||
|
default: abort(); break;
|
||||||
|
}
|
||||||
|
fimg_plot_rgb(img, x, y, fr, fg, fb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
free(ligne);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
@ -154,8 +154,8 @@ fname = argv[optind];
|
|||||||
|
|
||||||
if (verbosity>1) fprintf(stderr, "*** mkfimg *** %s %s *** pid %ld\n",
|
if (verbosity>1) fprintf(stderr, "*** mkfimg *** %s %s *** pid %ld\n",
|
||||||
__DATE__, __TIME__, (long)getpid());
|
__DATE__, __TIME__, (long)getpid());
|
||||||
if (verbosity) fprintf(stderr, "making '%s' %dx%d, type %d\n",
|
if (verbosity) fprintf(stderr, "::: %s is making '%s' %dx%d, type %d\n",
|
||||||
fname, width, height, type);
|
argv[0], fname, width, height, type);
|
||||||
|
|
||||||
srand48(getpid() ^ time(NULL));
|
srand48(getpid() ^ time(NULL));
|
||||||
|
|
||||||
@ -176,6 +176,7 @@ switch(type) {
|
|||||||
case T_TPAT0: fimg_test_pattern(&fimg, 0, fvalue); break;
|
case T_TPAT0: fimg_test_pattern(&fimg, 0, fvalue); break;
|
||||||
case T_MIRCOL1: fimg_mircol_1(&fimg, fvalue); break;
|
case T_MIRCOL1: fimg_mircol_1(&fimg, fvalue); break;
|
||||||
case T_BLOUP: fimg_draw_something(&fimg); break;
|
case T_BLOUP: fimg_draw_something(&fimg); break;
|
||||||
|
case T_STRIPES: fimg_do_stripes(&fimg, 0); break;
|
||||||
case -1: exit(1);
|
case -1: exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,8 +192,9 @@ if (wrmdata) {
|
|||||||
else {
|
else {
|
||||||
foo = fimg_dump_to_file(&fimg, fname, 0);
|
foo = fimg_dump_to_file(&fimg, fname, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "dump fimg to %s error -> %d\n", fname, foo);
|
fprintf(stderr, "*** dump fimg to %s error -> %d\n", fname, foo);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user