Compare commits
3 Commits
764b93e0b7
...
0224f6fd37
Author | SHA1 | Date | |
---|---|---|---|
|
0224f6fd37 | ||
|
360459d938 | ||
|
46cd82f3b5 |
@ -2,7 +2,7 @@
|
|||||||
* floatimg.h
|
* floatimg.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define FIMG_VERSION 84
|
#define FIMG_VERSION 85
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* in memory descriptor
|
* in memory descriptor
|
||||||
@ -91,6 +91,10 @@ int fimg_cos_010(FloatImg *s, FloatImg *d, double maxval);
|
|||||||
|
|
||||||
int fimg_mk_gray_from(FloatImg *src, FloatImg*dst, int k);
|
int fimg_mk_gray_from(FloatImg *src, FloatImg*dst, int k);
|
||||||
|
|
||||||
|
/* module funcs/rampes.c */
|
||||||
|
int fimg_hdeg_a(FloatImg *img, double dcoef);
|
||||||
|
int fimg_vdeg_a(FloatImg *img, double dcoef);
|
||||||
|
|
||||||
/* FIMG files module */
|
/* FIMG files module */
|
||||||
int fimg_fileinfos(char *fname, int *datas);
|
int fimg_fileinfos(char *fname, int *datas);
|
||||||
int fimg_dump_to_file(FloatImg *head, char *fname, int notused);
|
int fimg_dump_to_file(FloatImg *head, char *fname, int notused);
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=0
|
COPT = -Wall -fpic -g -no-pie -DDEBUG_LEVEL=1
|
||||||
DEPS = ../floatimg.h Makefile
|
DEPS = ../floatimg.h Makefile
|
||||||
OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
|
OBJS = fimg-png.o fimg-tiff.o misc-plots.o filtrage.o utils.o \
|
||||||
fimg-libpnm.o
|
fimg-libpnm.o rampes.o
|
||||||
|
|
||||||
#---------------------------------------------------------------
|
#---------------------------------------------------------------
|
||||||
|
|
||||||
@ -30,5 +30,8 @@ misc-plots.o: misc-plots.c $(DEPS)
|
|||||||
filtrage.o: filtrage.c $(DEPS)
|
filtrage.o: filtrage.c $(DEPS)
|
||||||
gcc $(COPT) -c $<
|
gcc $(COPT) -c $<
|
||||||
|
|
||||||
|
rampes.o: rampes.c $(DEPS)
|
||||||
|
gcc $(COPT) -c $<
|
||||||
|
|
||||||
utils.o: utils.c $(DEPS)
|
utils.o: utils.c $(DEPS)
|
||||||
gcc $(COPT) -c $<
|
gcc $(COPT) -c $<
|
||||||
|
@ -13,7 +13,7 @@ int x, y, offset;
|
|||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, ">>> %s ( %p )\n", __func__, img);
|
fprintf(stderr, ">>> %s ( %p )\n", __func__, img);
|
||||||
fprintf(stderr," type %s size %dx%d\n", img->type,
|
fprintf(stderr," type %d size %dx%d\n", img->type,
|
||||||
img->width, img->height);
|
img->width, img->height);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
62
funcs/rampes.c
Normal file
62
funcs/rampes.c
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* FLOATIMG
|
||||||
|
* rampes diverses, trucs etranges
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "../floatimg.h"
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
int fimg_hdeg_a(FloatImg *img, double dcoef)
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
float value;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %f )\n", __func__, img, dcoef);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (FIMG_TYPE_RGB != img->type) {
|
||||||
|
fprintf(stderr, "%s bad type\n", __func__);
|
||||||
|
return -6;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (x=0; x<img->width; x++)
|
||||||
|
{
|
||||||
|
value = (float)x / (float)img->width;
|
||||||
|
value *= dcoef;
|
||||||
|
for (y=0; y<img->height; y++) {
|
||||||
|
fimg_plot_rgb(img, x, y, value, value, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
int fimg_vdeg_a(FloatImg *img, double dcoef)
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
float value;
|
||||||
|
|
||||||
|
#if DEBUG_LEVEL
|
||||||
|
fprintf(stderr, ">>> %s ( %p %f )\n", __func__, img, dcoef);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (FIMG_TYPE_RGB != img->type) {
|
||||||
|
fprintf(stderr, "%s bad type\n", __func__);
|
||||||
|
return -6;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (y=0; y<img->height; y++)
|
||||||
|
{
|
||||||
|
value = (float)y / (float)img->height;
|
||||||
|
value *= dcoef;
|
||||||
|
for (x=0; x<img->width; x++) {
|
||||||
|
fimg_plot_rgb(img, x, y, value, value, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* --------------------------------------------------------------------- */
|
22
funcs/t.c
22
funcs/t.c
@ -48,6 +48,26 @@ printf("%-10s %d\n\n", fname, foo);
|
|||||||
foo = format_from_extension(fname="foo.xyzzy");
|
foo = format_from_extension(fname="foo.xyzzy");
|
||||||
printf("%-10s %d\n\n", fname, foo);
|
printf("%-10s %d\n\n", fname, foo);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
/* --------------------------------------------------------------------- */
|
||||||
|
int essai_rampes(void)
|
||||||
|
{
|
||||||
|
FloatImg fimg;
|
||||||
|
int foo;
|
||||||
|
|
||||||
|
fimg_create(&fimg, 640, 480, FIMG_TYPE_RGB);
|
||||||
|
|
||||||
|
foo = fimg_hdeg_a(&fimg, (double)3.141592654);
|
||||||
|
fprintf(stderr, "make h deg -> %d\n", foo);
|
||||||
|
foo = fimg_save_as_pnm(&fimg, "hdeg.pnm", 0);
|
||||||
|
fprintf(stderr, "%s: save as pnm -> %d\n", __func__, foo);
|
||||||
|
|
||||||
|
foo = fimg_vdeg_a(&fimg, (double)3.141592654);
|
||||||
|
fprintf(stderr, "make h deg -> %d\n", foo);
|
||||||
|
foo = fimg_save_as_pnm(&fimg, "vdeg.pnm", 0);
|
||||||
|
fprintf(stderr, "%s: save as pnm -> %d\n", __func__, foo);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
@ -81,7 +101,7 @@ int foo;
|
|||||||
|
|
||||||
puts("++++++++++++++++++++++++++++++++");
|
puts("++++++++++++++++++++++++++++++++");
|
||||||
|
|
||||||
foo = essai_ecrire_png("dessin.png");
|
foo = essai_rampes();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,11 @@ static void help(int lvl)
|
|||||||
{
|
{
|
||||||
Fx *fx;
|
Fx *fx;
|
||||||
|
|
||||||
puts("--- fimg special effects ---");
|
puts("------ fimg special effects ------");
|
||||||
|
puts("usage:");
|
||||||
|
puts("\tfimgfix [options] <effect> source.fimg resultat.fimg");
|
||||||
|
|
||||||
|
puts("effects:");
|
||||||
printf("\t");
|
printf("\t");
|
||||||
for (fx=fx_list; fx->name; fx++) {
|
for (fx=fx_list; fx->name; fx++) {
|
||||||
printf("%s ", fx->name);
|
printf("%s ", fx->name);
|
||||||
|
@ -12,6 +12,9 @@ int verbosity;
|
|||||||
#define T_BLACK 1
|
#define T_BLACK 1
|
||||||
#define T_DRAND48 2
|
#define T_DRAND48 2
|
||||||
#define T_GRAY 3
|
#define T_GRAY 3
|
||||||
|
#define T_HDEG_A 4
|
||||||
|
#define T_VDEG_A 5
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int code;
|
int code;
|
||||||
char *name;
|
char *name;
|
||||||
@ -21,7 +24,11 @@ Type types[] = {
|
|||||||
{ T_BLACK, "black" },
|
{ T_BLACK, "black" },
|
||||||
{ T_DRAND48, "drand48" },
|
{ T_DRAND48, "drand48" },
|
||||||
{ T_GRAY, "gray" },
|
{ T_GRAY, "gray" },
|
||||||
{ T_GRAY, "grey" }
|
{ T_GRAY, "grey" },
|
||||||
|
{ T_HDEG_A, "hdeg" },
|
||||||
|
{ T_VDEG_A, "vdeg" },
|
||||||
|
|
||||||
|
{ 0, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
static int get_type(char *name)
|
static int get_type(char *name)
|
||||||
@ -35,7 +42,6 @@ fprintf(stderr, ">>> %s ( '%s' )\n", __func__, name);
|
|||||||
// #define TEST(str) ( ! strcmp(name, str) )
|
// #define TEST(str) ( ! strcmp(name, str) )
|
||||||
|
|
||||||
for (type = types; type->code; type++) {
|
for (type = types; type->code; type++) {
|
||||||
// printf("\t%-15s %d\n", type->name, type->code);
|
|
||||||
if (!strcmp(name, type->name)) {
|
if (!strcmp(name, type->name)) {
|
||||||
return type->code;
|
return type->code;
|
||||||
}
|
}
|
||||||
@ -46,13 +52,16 @@ return -1;
|
|||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
static void help(int lj)
|
static void help(int lj)
|
||||||
{
|
{
|
||||||
|
int foo;
|
||||||
|
|
||||||
puts("Usage:\tmkfimg [options] quux.fimg width height");
|
puts("Usage:\tmkfimg [options] quux.fimg width height");
|
||||||
|
|
||||||
puts("\t-k N.N\tgive a float parameter");
|
puts("\t-k N.N\tgive a float parameter");
|
||||||
puts("\t-t bla\t\thowto make the pic");
|
fputs("\t-t bla\thowto make the pic\n\t\t", stdout);
|
||||||
puts("\t\t\tblack, drand48...");
|
for (foo=0; types[foo].code; foo++) {
|
||||||
puts("\t-v\tincrease verbosity");
|
printf("%s ", types[foo].name);
|
||||||
|
}
|
||||||
|
puts("\n\t-v\tincrease verbosity");
|
||||||
|
|
||||||
if (verbosity) fimg_print_version(1);
|
if (verbosity) fimg_print_version(1);
|
||||||
|
|
||||||
@ -114,6 +123,8 @@ switch(type) {
|
|||||||
case T_DRAND48: fimg_drand48(&fimg, fvalue); break;
|
case T_DRAND48: fimg_drand48(&fimg, fvalue); break;
|
||||||
case T_GRAY: fimg_rgb_constant(&fimg, fvalue, fvalue, fvalue);
|
case T_GRAY: fimg_rgb_constant(&fimg, fvalue, fvalue, fvalue);
|
||||||
break;
|
break;
|
||||||
|
case T_HDEG_A: fimg_hdeg_a(&fimg, 1.0); break;
|
||||||
|
case T_VDEG_A: fimg_vdeg_a(&fimg, 1.0); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
foo = fimg_dump_to_file(&fimg, fname, 0);
|
foo = fimg_dump_to_file(&fimg, fname, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user