Compare commits
	
		
			No commits in common. "8d369579560210434d08b5774c720cbb53077b76" and "d9d2db45b0061f30d57c0d7488897988be8227a5" have entirely different histories.
		
	
	
		
			8d36957956
			...
			d9d2db45b0
		
	
		
							
								
								
									
										68
									
								
								Lib/bmp.c
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								Lib/bmp.c
									
									
									
									
									
								
							| @ -19,13 +19,15 @@ | |||||||
| #include  "bmp.h"	/* maybe I can hardcoded bmp.h here ? */ | #include  "bmp.h"	/* maybe I can hardcoded bmp.h here ? */ | ||||||
| 
 | 
 | ||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| static void fatal_error(char *txt) | static void | ||||||
|  | fatal_error(char *txt) | ||||||
| { | { | ||||||
| fprintf(stderr, "BMP: Fatal error: %s\n", txt); | fprintf(stderr, "BMP: Fatal error: %s\n", txt); | ||||||
| exit(10); | exit(10); | ||||||
| } | } | ||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| int Image_BMP_infos(char *nom, int *pw, int *ph, int *pt, int verb) | int | ||||||
|  | Image_BMP_infos(char *nom, int *pw, int *ph, int *pt, int verb) | ||||||
| { | { | ||||||
| FILE		*fp; | FILE		*fp; | ||||||
| BMPHEAD		head; | BMPHEAD		head; | ||||||
| @ -33,20 +35,17 @@ int		foo; | |||||||
| 
 | 
 | ||||||
| if (verb)	printf("BMP_Infos : '%s'\n", nom); | if (verb)	printf("BMP_Infos : '%s'\n", nom); | ||||||
| 
 | 
 | ||||||
| if ((fp=fopen(nom, "r")) == NULL) { | if ((fp=fopen(nom, "r")) == NULL) | ||||||
|  | 	{ | ||||||
| 	fprintf(stderr, "BMP_Infos: can't open %s\n", nom); | 	fprintf(stderr, "BMP_Infos: can't open %s\n", nom); | ||||||
| 	return FILE_NOT_FOUND; | 	return FILE_NOT_FOUND; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| foo = fread(&head, 1, sizeof(head), fp); | foo = fread(&head, 1, sizeof(head), fp); | ||||||
| if (sizeof(head) != foo) { |  | ||||||
| 	fprintf(stderr, "%s: err read header of %s\n", __func__, nom); |  | ||||||
| 	fclose(fp); |  | ||||||
| 	return UNKNOW_ERROR; |  | ||||||
| 	}  |  | ||||||
| fclose(fp); | fclose(fp); | ||||||
| 
 | 
 | ||||||
| if (verb) { | if (verb) | ||||||
|  | 	{ | ||||||
| 	printf("signature    %c%c           filesize %8ld\n", | 	printf("signature    %c%c           filesize %8ld\n", | ||||||
| 		head.id[0], head.id[1], head.filesize); | 		head.id[0], head.id[1], head.filesize); | ||||||
| 	printf("headerSize   %8ld     infoSize %8ld\n", | 	printf("headerSize   %8ld     infoSize %8ld\n", | ||||||
| @ -55,7 +54,7 @@ if (verb) { | |||||||
| 			head.width, head.height, head.bits); | 			head.width, head.height, head.bits); | ||||||
| 	printf("colors: used %ld  important %ld\n",  | 	printf("colors: used %ld  important %ld\n",  | ||||||
| 			head.clrused, head.clrimportant); | 			head.clrused, head.clrimportant); | ||||||
| 	printf("taille structure header  %ld\n", sizeof(BMPHEAD)); | 	printf("taille structure header  %d\n", sizeof(BMPHEAD)); | ||||||
| 	} | 	} | ||||||
| /* 
 | /* 
 | ||||||
|  * now, return some usefull informations. |  * now, return some usefull informations. | ||||||
| @ -71,32 +70,28 @@ return 0; | |||||||
|  */ |  */ | ||||||
| #define PIX2BYTE(n) ((n+7)/8) | #define PIX2BYTE(n) ((n+7)/8) | ||||||
| 
 | 
 | ||||||
| Image_Desc * Image_BMP_alloc_load(char *nom, int reserved) | Image_Desc * | ||||||
|  | Image_BMP_alloc_load(char *nom, int reserved) | ||||||
| { | { | ||||||
| (void)reserved;				/* WARNING KILLER */ |  | ||||||
| FILE		*fp; | FILE		*fp; | ||||||
| BMPHEAD		head; | BMPHEAD		head; | ||||||
| int		ligne, foo, larg, col, ligne2; | int		ligne, foo, larg, col, ligne2; | ||||||
| Image_Desc	*image; | Image_Desc	*image; | ||||||
| uint8_t		*buffer; | uint8_t		*buffer; | ||||||
| 
 | 
 | ||||||
| if ((fp=fopen(nom, "r")) == NULL) { | if ((fp=fopen(nom, "r")) == NULL) | ||||||
|  | 	{ | ||||||
| 	fprintf(stderr, "can't open %s\n", nom); | 	fprintf(stderr, "can't open %s\n", nom); | ||||||
| 	return NULL; | 	return NULL; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| foo = fread(&head, 1, sizeof(head), fp); | foo = fread(&head, 1, sizeof(head), fp); | ||||||
| if (sizeof(head) != foo) { |  | ||||||
| 	fprintf(stderr, "%s: err read header of %s\n", __func__, nom); |  | ||||||
| 	fclose(fp); |  | ||||||
| 	return NULL; |  | ||||||
| 	}  |  | ||||||
| 
 |  | ||||||
| #if DEBUG_LEVEL | #if DEBUG_LEVEL | ||||||
| fprintf(stderr, "BMP: on a lu %d octets pour le header.\n", foo);  | fprintf(stderr, "BMP: on a lu %d octets pour le header.\n", foo);  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| if ( head.id[0] != 'B' || head.id[1] != 'M' ) { | if ( head.id[0] != 'B' || head.id[1] != 'M' ) | ||||||
|  | 	{ | ||||||
| 	fprintf(stderr, "BMP_Alloc_Load: BAD MAGIC  %s\n", nom); | 	fprintf(stderr, "BMP_Alloc_Load: BAD MAGIC  %s\n", nom); | ||||||
| 	return NULL; | 	return NULL; | ||||||
| 	} | 	} | ||||||
| @ -108,13 +103,15 @@ fprintf(stderr, "BMP_Alloc_Load: image depth = %d\n", head.bits); | |||||||
| /*
 | /*
 | ||||||
|  *	first step: allocating the memory. |  *	first step: allocating the memory. | ||||||
|  */ |  */ | ||||||
| switch (head.bits) { | switch (head.bits) | ||||||
|  | 	{ | ||||||
| 	case 1:	case 4: case 8: | 	case 1:	case 4: case 8: | ||||||
| 		fprintf(stderr, "bit depth %d not supported\n", head.bits); | 		fprintf(stderr, "bit depth %d not supported\n", head.bits); | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	case 24: | 	case 24: | ||||||
|  | 
 | ||||||
|         	if ( (image=Image_alloc(head.width, head.height, 3))==NULL) |         	if ( (image=Image_alloc(head.width, head.height, 3))==NULL) | ||||||
|             		fatal_error("no memory for picture in 'alloc_load'\n"); |             		fatal_error("no memory for picture in 'alloc_load'\n"); | ||||||
| 
 | 
 | ||||||
| @ -122,6 +119,7 @@ switch (head.bits) { | |||||||
|             		fatal_error("no memory for buffer in 'alloc_load'\n"); |             		fatal_error("no memory for buffer in 'alloc_load'\n"); | ||||||
| 
 | 
 | ||||||
| 		larg = head.width * 3; | 		larg = head.width * 3; | ||||||
|  | 
 | ||||||
| 		break; | 		break; | ||||||
| 
 | 
 | ||||||
| 	default: | 	default: | ||||||
| @ -134,7 +132,8 @@ switch (head.bits) { | |||||||
| /*
 | /*
 | ||||||
|  *	round up to an even dword boundary	(?) |  *	round up to an even dword boundary	(?) | ||||||
|  */ |  */ | ||||||
| if (larg & 0x00000003) { | if (larg & 0x00000003) | ||||||
|  | 	{ | ||||||
| 	larg |= 0x00000003; | 	larg |= 0x00000003; | ||||||
| 	larg++; | 	larg++; | ||||||
| 	} | 	} | ||||||
| @ -144,14 +143,17 @@ if (larg & 0x00000003) { | |||||||
|  * |  * | ||||||
|  *	(no default case, filtered in first step) |  *	(no default case, filtered in first step) | ||||||
|  */ |  */ | ||||||
| switch (head.bits) { | switch (head.bits) | ||||||
|  |     { | ||||||
|     case 24: |     case 24: | ||||||
| 
 | 
 | ||||||
| 	for (ligne=0; ligne<head.height; ligne++) { | 	for (ligne=0; ligne<head.height; ligne++) | ||||||
|  | 	    { | ||||||
| 	    foo=fread(buffer, 1, larg, fp); | 	    foo=fread(buffer, 1, larg, fp); | ||||||
| 	    /* printf("ligne %5d lu %d\n", ligne, foo); */ | 	    /* printf("ligne %5d lu %d\n", ligne, foo); */ | ||||||
| 	    ligne2 = head.height - ligne - 1; | 	    ligne2 = head.height - ligne - 1; | ||||||
| 	    for (col=0; col<head.width; col++) { | 	    for (col=0; col<head.width; col++) | ||||||
|  | 		{ | ||||||
|                 (image->Bpix[ligne2])[col] = buffer[  col*3 ]; |                 (image->Bpix[ligne2])[col] = buffer[  col*3 ]; | ||||||
|                 (image->Gpix[ligne2])[col] = buffer[ (col*3) + 1 ]; |                 (image->Gpix[ligne2])[col] = buffer[ (col*3) + 1 ]; | ||||||
|                 (image->Rpix[ligne2])[col] = buffer[ (col*3) + 2 ]; |                 (image->Rpix[ligne2])[col] = buffer[ (col*3) + 2 ]; | ||||||
| @ -170,9 +172,9 @@ return image; | |||||||
|  * |  * | ||||||
|  *	et cette fois-ci, on va faire gaffe au boutisme :) |  *	et cette fois-ci, on va faire gaffe au boutisme :) | ||||||
|  */ |  */ | ||||||
| int Image_BMP_save_24(char *filename, Image_Desc *img, int flag) | int | ||||||
|  | Image_BMP_save_24(char *filename, Image_Desc *img, int flag) | ||||||
| { | { | ||||||
| (void)flag;				/* WARNING KILLER */ |  | ||||||
| FILE		*fp; | FILE		*fp; | ||||||
| long		grand; | long		grand; | ||||||
| short		court; | short		court; | ||||||
| @ -185,7 +187,8 @@ fprintf(stderr, "%s : writing %p to %s, flag=%d\n", __func__, | |||||||
| 				img, filename, flag); | 				img, filename, flag); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| if ((fp=fopen(filename, "w")) == NULL) { | if ((fp=fopen(filename, "w")) == NULL) | ||||||
|  | 	{ | ||||||
| 	fprintf(stderr, "can't open %s for writing\n", filename); | 	fprintf(stderr, "can't open %s for writing\n", filename); | ||||||
| 	return FILE_CREATE_ERR; | 	return FILE_CREATE_ERR; | ||||||
| 	} | 	} | ||||||
| @ -203,7 +206,8 @@ if (bytes & 0x3) | |||||||
| 	bytes++; | 	bytes++; | ||||||
| 	} | 	} | ||||||
| */ | */ | ||||||
| switch (bytes & 0x3) { | switch (bytes & 0x3) | ||||||
|  | 	{ | ||||||
| 	case 0:		/* OK */	break; | 	case 0:		/* OK */	break; | ||||||
| 	case 1:		bytes+=3;	break; | 	case 1:		bytes+=3;	break; | ||||||
| 	case 2:		bytes+=2;	break; | 	case 2:		bytes+=2;	break; | ||||||
| @ -257,12 +261,14 @@ fflush(fp); | |||||||
| if ((buffer=(uint8_t *)malloc(sizeof(uint8_t)*4*img->width)) == NULL) | if ((buffer=(uint8_t *)malloc(sizeof(uint8_t)*4*img->width)) == NULL) | ||||||
|     fatal_error("no memory buffer for BMP24 save operation"); |     fatal_error("no memory buffer for BMP24 save operation"); | ||||||
| 
 | 
 | ||||||
| for (line=img->height-1; line>=0; line--) { | for (line=img->height-1; line>=0; line--) | ||||||
|  | 	{ | ||||||
| 	ptr = buffer; | 	ptr = buffer; | ||||||
|         Rptr = img->Rpix[line]; |         Rptr = img->Rpix[line]; | ||||||
|         Gptr = img->Gpix[line]; |         Gptr = img->Gpix[line]; | ||||||
|         Bptr = img->Bpix[line]; |         Bptr = img->Bpix[line]; | ||||||
|         for (foo=0; foo<img->width; foo++) { |         for (foo=0; foo<img->width; foo++) | ||||||
|  |             { | ||||||
|             *ptr++ = Bptr[foo]; |             *ptr++ = Bptr[foo]; | ||||||
|             *ptr++ = Gptr[foo]; |             *ptr++ = Gptr[foo]; | ||||||
|             *ptr++ = Rptr[foo]; |             *ptr++ = Rptr[foo]; | ||||||
|  | |||||||
							
								
								
									
										12
									
								
								Lib/dither.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Lib/dither.c
									
									
									
									
									
								
							| @ -16,9 +16,7 @@ int Image_dither_Bayer_0(Image_Desc *s, Image_Desc *d, int uh) | |||||||
| { | { | ||||||
| int	dx, dy, x, y, r, g, b; | int	dx, dy, x, y, r, g, b; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| /* directement copie de la page 389 de "Bitmapped graphics" de
 | /* directement copie de la page 389 de "Bitmapped graphics" de
 | ||||||
|   			Steve Rimmer. */ |   			Steve Rimmer. */ | ||||||
| @ -65,9 +63,7 @@ int Image_dither_crude(Image_Desc *s, Image_Desc *d, int uh) | |||||||
| int	x, y, r, g, b; | int	x, y, r, g, b; | ||||||
| int	som; | int	som; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| if (s != d) Image_clear(d, 0, 0, 0); | if (s != d) Image_clear(d, 0, 0, 0); | ||||||
| 
 | 
 | ||||||
| @ -109,16 +105,14 @@ return OLL_KORRECT; | |||||||
| } | } | ||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| /*
 | /*
 | ||||||
|  *	Il ne marche pas tres fort, ce truc... |  *	ça ne marche pas très fort, ce truc... | ||||||
|  */ |  */ | ||||||
| int Image_dither_2x2(Image_Desc *s, Image_Desc *d, int uh) | int Image_dither_2x2(Image_Desc *s, Image_Desc *d, int uh) | ||||||
| { | { | ||||||
| int	x, y, xm, ym; | int	x, y, xm, ym; | ||||||
| int	r, g, b, v; | int	r, g, b, v; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| x = s->width;		xm = (x&1) ? (x-1) : x; | x = s->width;		xm = (x&1) ? (x-1) : x; | ||||||
| y = s->height;		ym = (y&1) ? (y-1) : y; | y = s->height;		ym = (y&1) ? (y-1) : y; | ||||||
| @ -159,9 +153,7 @@ int Image_dither_seuil_random(Image_Desc *s, Image_Desc *d, int uh) | |||||||
| int	x, y, r, g, b; | int	x, y, r, g, b; | ||||||
| int	foo; | int	foo; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| if ( (foo=Image_compare_desc(s, d)) ) { | if ( (foo=Image_compare_desc(s, d)) ) { | ||||||
|     fprintf(stderr, "%s: images are differents %d\n", __func__, foo); |     fprintf(stderr, "%s: images are differents %d\n", __func__, foo); | ||||||
| @ -200,9 +192,7 @@ int	x, y, xa, xb, inc, errR, errG, errB; | |||||||
| int	r, g, b, dr, dg, db; | int	r, g, b, dr, dg, db; | ||||||
| int	foo; | int	foo; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__, s, d, uh); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| if ( (foo=Image_compare_desc(s, d)) ) { | if ( (foo=Image_compare_desc(s, d)) ) { | ||||||
|     fprintf(stderr, "%s: images are differents %d\n", __func__, foo); |     fprintf(stderr, "%s: images are differents %d\n", __func__, foo); | ||||||
|  | |||||||
| @ -18,7 +18,8 @@ | |||||||
|  *	Les colors maps sont censees etre compatible avec celles |  *	Les colors maps sont censees etre compatible avec celles | ||||||
|  *	de FRACTINT, mais il faudrait verifier. |  *	de FRACTINT, mais il faudrait verifier. | ||||||
|  */ |  */ | ||||||
| int Image_save_color_Map(char *file, char *name, RGB_map *map) | int | ||||||
|  | Image_save_color_Map(char *file, char *name, RGB_map *map) | ||||||
| { | { | ||||||
| int	foo; | int	foo; | ||||||
| FILE	*fp; | FILE	*fp; | ||||||
| @ -76,16 +77,15 @@ return OLL_KORRECT; | |||||||
|  *	What is the 'right thing' to do when we get more than |  *	What is the 'right thing' to do when we get more than | ||||||
|  *	256 lines of data ? return an error ? |  *	256 lines of data ? return an error ? | ||||||
|  */ |  */ | ||||||
| int Image_load_color_Map(char *file, char *name, RGB_map *where) | int | ||||||
|  | Image_load_color_Map(char *file, char *name, RGB_map *where) | ||||||
| { | { | ||||||
| FILE    *fp; | FILE    *fp; | ||||||
| int     nbre, r, g, b, foo, errcode; | int     nbre, r, g, b, foo, errcode; | ||||||
| char    buffer[256]; | char    buffer[256]; | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( '%s' '%s' %p )\n", __func__, | fprintf(stderr, ">>> %s ( '%s' '%s' %p )\n", __func__, | ||||||
| 				file, name, where); | 				file, name, where); | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
| if ( name != NULL ) { | if ( name != NULL ) { | ||||||
|     if (strlen(name)>IMG_OBJNAME_LEN) return STRING_TOO_LONG; |     if (strlen(name)>IMG_OBJNAME_LEN) return STRING_TOO_LONG; | ||||||
| @ -94,8 +94,8 @@ if ( name != NULL ) { | |||||||
| else    strcpy(where->name, "<noname>"); | else    strcpy(where->name, "<noname>"); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  *  patch du 11 Decembre 2001: on utilise une fonction qui recherche le |  *  patch du 11 Décembre 2001: on utilise une fonction qui recherche le | ||||||
|  *  fichier dans differents endroits. Cf 'mustopen.c' pour + de details. |  *  fichier dans differents endroits. Cf 'mustopen.c' pour + de détails. | ||||||
|  */ |  */ | ||||||
| if ((fp=Image_must_fopen(file, "r", 0)) == NULL) { | if ((fp=Image_must_fopen(file, "r", 0)) == NULL) { | ||||||
| 	/* safety poke */ | 	/* safety poke */ | ||||||
| @ -134,12 +134,13 @@ return errcode; | |||||||
|  * |  * | ||||||
|  *	XXX voir aussi indexcol.x XXX |  *	XXX voir aussi indexcol.x XXX | ||||||
|  */ |  */ | ||||||
| int Image_attach_Map(Image_Desc *im, char *nom_map, int flags) | int | ||||||
|  | Image_attach_Map(Image_Desc *im, char *nom_map, int flags) | ||||||
| { | { | ||||||
| RGB_map		map; | RGB_map		map; | ||||||
| int		foo; | int		foo; | ||||||
| 
 | 
 | ||||||
| fprintf(stderr, "%s: cette fonction n'est pas finie\n", __func__); | fprintf(stderr, "Image attach Map: cette fonction n'est pas finie\n"); | ||||||
| foo = Image_load_color_Map(nom_map, "", &map); | foo = Image_load_color_Map(nom_map, "", &map); | ||||||
| if (foo == 0) { | if (foo == 0) { | ||||||
| 	fprintf(stderr, "Attach Map: foo is zero ?\n"); | 	fprintf(stderr, "Attach Map: foo is zero ?\n"); | ||||||
| @ -150,7 +151,8 @@ return FUNC_NOT_FINISH; | |||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| /*	new 31 Juillet 2000						*/ | /*	new 31 Juillet 2000						*/ | ||||||
| 
 | 
 | ||||||
| int Image_make_random_Map(char *nom, RGB_map *map, int nbre) | int | ||||||
|  | Image_make_random_Map(char *nom, RGB_map *map, int nbre) | ||||||
| { | { | ||||||
| int foo; | int foo; | ||||||
| 
 | 
 | ||||||
| @ -174,7 +176,8 @@ return OLL_KORRECT; | |||||||
| /*	21 Sept 2000
 | /*	21 Sept 2000
 | ||||||
| 	Make a 2x2x2 color palette. | 	Make a 2x2x2 color palette. | ||||||
| */ | */ | ||||||
| int Image_make_222_Map(char *nom, RGB_map *map, int noise) | int | ||||||
|  | Image_make_222_Map(char *nom, RGB_map *map, int noise) | ||||||
| { | { | ||||||
| int	foo, r, g, b; | int	foo, r, g, b; | ||||||
| 
 | 
 | ||||||
| @ -203,12 +206,13 @@ return OLL_KORRECT; | |||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| /*	15 Mai 2001
 | /*	15 Mai 2001
 | ||||||
|  *	A big classic: the three-sinus color map. |  *	A big classic: the three-sinus color map. | ||||||
|  *	parametres: |  *	paramètres: | ||||||
|  *		0,1,2	R,G,B period |  *		0,1,2	R,G,B period | ||||||
|  *		3,4,5	R,G,B phase |  *		3,4,5	R,G,B phase | ||||||
|  *		6,7	reserved |  *		6,7	reserved | ||||||
| */ | */ | ||||||
| int Image_palette_3sinus(char *nom, RGB_map *ou, double pars[8]) | int | ||||||
|  | Image_palette_3sinus(char *nom, RGB_map *ou, double pars[8]) | ||||||
| { | { | ||||||
| int	foo; | int	foo; | ||||||
| double	dfoo, dra, dga, dba; | double	dfoo, dra, dga, dba; | ||||||
| @ -237,7 +241,8 @@ return FUNC_IS_BETA; | |||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| /*     new 18 Dec 2001
 | /*     new 18 Dec 2001
 | ||||||
|  */ |  */ | ||||||
| int Image_mix_palettes(RGB_map *p1, RGB_map *p2, RGB_map *d, char *txt, int k) | int | ||||||
|  | Image_mix_palettes(RGB_map *p1, RGB_map *p2, RGB_map *d, char *txt, int k) | ||||||
| { | { | ||||||
| int	idx, k2; | int	idx, k2; | ||||||
| int	r1, g1, b1, r2, g2, b2; | int	r1, g1, b1, r2, g2, b2; | ||||||
| @ -249,7 +254,8 @@ fprintf(stderr, "Image mix palette: work in progress...\n"); | |||||||
| k2 = 10000 - k; | k2 = 10000 - k; | ||||||
| 
 | 
 | ||||||
| for (idx=0; idx<256; idx++) { | for (idx=0; idx<256; idx++) { | ||||||
| 	if (idx < p1->nbre) { | 	if (idx < p1->nbre) | ||||||
|  | 		{ | ||||||
| 		r1 = p1->red[idx]; | 		r1 = p1->red[idx]; | ||||||
| 		g1 = p1->green[idx]; | 		g1 = p1->green[idx]; | ||||||
| 		b1 = p1->blue[idx]; | 		b1 = p1->blue[idx]; | ||||||
| @ -284,7 +290,7 @@ return FUNC_IS_BETA; | |||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
| /* new 01 aout 2008 */ | /* new 01 aout 2008 */ | ||||||
| 
 | 
 | ||||||
| /* XXX HACK XXX */			/* please explain ! */ | /* XXX HACK XXX */ | ||||||
| double round(double); | double round(double); | ||||||
| /* XXX HACK XXX */ | /* XXX HACK XXX */ | ||||||
| 
 | 
 | ||||||
| @ -394,6 +400,6 @@ for (foo=0; foo<p->nbre; foo++)	{ | |||||||
| 
 | 
 | ||||||
| fclose(fp); | fclose(fp); | ||||||
| 
 | 
 | ||||||
| return FUNC_IS_BETA; | return FULL_NUCKED; | ||||||
| } | } | ||||||
| /*::------------------------------------------------------------------::*/ | /*::------------------------------------------------------------------::*/ | ||||||
|  | |||||||
| @ -497,7 +497,8 @@ return OLL_KORRECT; | |||||||
|  *		que les images RGB. il manque le GRIS !!! |  *		que les images RGB. il manque le GRIS !!! | ||||||
|  *		! il manque aussi la decompression ! |  *		! il manque aussi la decompression ! | ||||||
|  */ |  */ | ||||||
| Image_Desc * Image_TGA_alloc_load(char *nom) | Image_Desc * | ||||||
|  | Image_TGA_alloc_load(char *nom) | ||||||
| { | { | ||||||
| Tga_file_header     head; | Tga_file_header     head; | ||||||
| FILE                *fp; | FILE                *fp; | ||||||
| @ -515,11 +516,6 @@ if ( (fp=fopen(nom, "rb")) == NULL ) | |||||||
| memset(&head, 0, sizeof(Tga_file_header)); | memset(&head, 0, sizeof(Tga_file_header)); | ||||||
| 
 | 
 | ||||||
| foo = Image_TGA_read_header(fp, &head); | foo = Image_TGA_read_header(fp, &head); | ||||||
| if (foo) { |  | ||||||
| 	fprintf(stderr, "%s: read error %d on header\n", __func__, foo); |  | ||||||
| 	fclose(fp); |  | ||||||
| 	return NULL; |  | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL > 1 | #if DEBUG_LEVEL > 1 | ||||||
| printf("TGA ALLOC LOAD: read header -> %d\n", foo); | printf("TGA ALLOC LOAD: read header -> %d\n", foo); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user