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