Compare commits
2 Commits
56941f1215
...
86cb7eaa4a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
86cb7eaa4a | ||
![]() |
2246a5d744 |
@ -63,6 +63,7 @@ extractbits.o: extractbits.c $(DEPS)
|
|||||||
|
|
||||||
filtadapt.o: filtadapt.c $(DEPS)
|
filtadapt.o: filtadapt.c $(DEPS)
|
||||||
filtres.o: filtres.c $(DEPS)
|
filtres.o: filtres.c $(DEPS)
|
||||||
|
falsecolors.o: falsecolors.c $(DEPS)
|
||||||
|
|
||||||
gadgrect.o: gadgrect.c $(DEPS)
|
gadgrect.o: gadgrect.c $(DEPS)
|
||||||
glitch.o: glitch.c $(DEPS)
|
glitch.o: glitch.c $(DEPS)
|
||||||
@ -132,7 +133,6 @@ vignetize.o: vignetize.c $(DEPS)
|
|||||||
warp0.o: warp0.c $(DEPS)
|
warp0.o: warp0.c $(DEPS)
|
||||||
warp1.o: warp1.c $(DEPS)
|
warp1.o: warp1.c $(DEPS)
|
||||||
warp2.o: warp2.c $(DEPS)
|
warp2.o: warp2.c $(DEPS)
|
||||||
warp3.o: warp3.c $(DEPS)
|
|
||||||
|
|
||||||
zoom.o: zoom.c $(DEPS)
|
zoom.o: zoom.c $(DEPS)
|
||||||
|
|
||||||
@ -152,7 +152,7 @@ OBJECTS = 7seg.o \
|
|||||||
dither.o dither2.o dither3.o \
|
dither.o dither2.o dither3.o \
|
||||||
doublesz.o drawalpha.o drawing.o drawpatt.o \
|
doublesz.o drawalpha.o drawing.o drawpatt.o \
|
||||||
effects.o effects2.o effects3.o extractbits.o \
|
effects.o effects2.o effects3.o extractbits.o \
|
||||||
filtadapt.o filtres.o \
|
filtadapt.o filtres.o falsecolors.o \
|
||||||
gadgrect.o glitch.o gradient.o \
|
gadgrect.o glitch.o gradient.o \
|
||||||
halfsize.o \
|
halfsize.o \
|
||||||
image.o imprime.o \
|
image.o imprime.o \
|
||||||
@ -175,7 +175,7 @@ OBJECTS = 7seg.o \
|
|||||||
text0.o text1.o text16x24.o \
|
text0.o text1.o text16x24.o \
|
||||||
tga.o tools.o turtle.o \
|
tga.o tools.o turtle.o \
|
||||||
vignetize.o \
|
vignetize.o \
|
||||||
warp0.o warp1.o warp2.o warp3.o \
|
warp0.o warp1.o warp2.o \
|
||||||
zoom.o
|
zoom.o
|
||||||
|
|
||||||
../libtthimage.a: $(OBJECTS)
|
../libtthimage.a: $(OBJECTS)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
calcluts.c
|
calcluts.c
|
||||||
----------
|
----------
|
||||||
|
|
||||||
voir aussi: luts15bits.c
|
voir aussi: luts15bits.c & palettes.c
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ for (foo=0; foo<256; foo++) {
|
|||||||
lut[foo] = quux;
|
lut[foo] = quux;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FUNC_IS_BETA;
|
return FUNC_IS_ALPHA;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int Image_calclut_foo(int *lut, int v0, int v255)
|
int Image_calclut_foo(int *lut, int v0, int v255)
|
||||||
@ -67,7 +67,7 @@ for (foo=0; foo<256; foo++) {
|
|||||||
|
|
||||||
if (fp!=stdout) fclose(fp);
|
if (fp!=stdout) fclose(fp);
|
||||||
|
|
||||||
return FUNC_IS_BETA;
|
return FUNC_IS_ALPHA;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int Image_load_lut(int *lut, char *fname, int flag)
|
int Image_load_lut(int *lut, char *fname, int flag)
|
||||||
@ -98,6 +98,6 @@ for (idx=0; idx<256; idx++) {
|
|||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
return FUNC_IS_BETA;
|
return FUNC_IS_ALPHA;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
|
@ -42,7 +42,7 @@ if ( (foo=Image_compare_desc(s, d)) )
|
|||||||
Image_TGA_save("/tmp/aaaa_debug_a.tga", s, 0);
|
Image_TGA_save("/tmp/aaaa_debug_a.tga", s, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Image_clear(d, 0, 0, 0);
|
/* XXX Image_clear(d, 0, 0, 0); */
|
||||||
|
|
||||||
for (y=0; y<s->height-3; y+=3)
|
for (y=0; y<s->height-3; y+=3)
|
||||||
{
|
{
|
||||||
@ -108,7 +108,7 @@ if ( (foo=Image_compare_desc(s, d)) )
|
|||||||
fprintf(stderr, "* Image_dither_3x3_1 (%s) is experimental\n", __FILE__);
|
fprintf(stderr, "* Image_dither_3x3_1 (%s) is experimental\n", __FILE__);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Image_clear(d, 0, 0, 0);
|
/* XXX Image_clear(d, 0, 0, 0); */
|
||||||
|
|
||||||
for (y=0; y<s->height-3; y+=3)
|
for (y=0; y<s->height-3; y+=3)
|
||||||
{
|
{
|
||||||
@ -167,7 +167,7 @@ if ( (foo=Image_compare_desc(s, d)) )
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
Image_clear(d, 0, 0, 0);
|
/* XXX Image_clear(d, 0, 0, 0); */
|
||||||
|
|
||||||
return FUNC_NOT_FINISH;
|
return FUNC_NOT_FINISH;
|
||||||
}
|
}
|
||||||
@ -183,7 +183,7 @@ if ( (foo=Image_compare_desc(s, d)) )
|
|||||||
return foo;
|
return foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
Image_clear(d, 0, 0, 0);
|
/* XXX Image_clear(d, 0, 0, 0); */
|
||||||
|
|
||||||
return FUNC_NOT_FINISH;
|
return FUNC_NOT_FINISH;
|
||||||
}
|
}
|
||||||
|
@ -69,8 +69,7 @@ fprintf(stderr, "%s ( %p %p %d %d )\n", __func__, s, d, shuff, mono);
|
|||||||
|
|
||||||
/* remplissage de la matrice */
|
/* remplissage de la matrice */
|
||||||
fprintf(stderr, " init matrice\n");
|
fprintf(stderr, " init matrice\n");
|
||||||
for(foo=0; foo<256; foo++)
|
for(foo=0; foo<256; foo++) {
|
||||||
{
|
|
||||||
((uint16_t *)matrice)[foo] = foo;
|
((uint16_t *)matrice)[foo] = foo;
|
||||||
}
|
}
|
||||||
/* brasssage de la matrice */
|
/* brasssage de la matrice */
|
||||||
|
@ -64,7 +64,6 @@ printf("RGBA : %5ld\n", sizeof(RGBA));
|
|||||||
printf("A_BitPlane : %5ld\n", sizeof(A_BitPlane));
|
printf("A_BitPlane : %5ld\n", sizeof(A_BitPlane));
|
||||||
printf("RGB_map : %5ld\n", sizeof(RGB_map));
|
printf("RGB_map : %5ld\n", sizeof(RGB_map));
|
||||||
printf("Image_Point : %5ld\n", sizeof(Image_Point));
|
printf("Image_Point : %5ld\n", sizeof(Image_Point));
|
||||||
printf("RGB LUTs : %5ld\n", sizeof(Image_LUTs));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
|
@ -24,6 +24,9 @@ Image_save_color_Map(char *file, char *name, RGB_map *map)
|
|||||||
int foo;
|
int foo;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
|
fprintf(stderr, ">>> %s ( '%s' '%s' %p )\n", __func__,
|
||||||
|
file, name, map);
|
||||||
|
|
||||||
if ( (fp=fopen(file, "w")) == NULL ) {
|
if ( (fp=fopen(file, "w")) == NULL ) {
|
||||||
fprintf(stderr, "Save Color Map: err fopen\n");
|
fprintf(stderr, "Save Color Map: err fopen\n");
|
||||||
return FILE_CREATE_ERR;
|
return FILE_CREATE_ERR;
|
||||||
@ -81,11 +84,14 @@ FILE *fp;
|
|||||||
int nbre, r, g, b, foo, errcode;
|
int nbre, r, g, b, foo, errcode;
|
||||||
char buffer[256];
|
char buffer[256];
|
||||||
|
|
||||||
|
fprintf(stderr, ">>> %s ( '%s' '%s' %p )\n", __func__,
|
||||||
|
file, name, where);
|
||||||
|
|
||||||
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;
|
||||||
strcpy(where->name, name);
|
strcpy(where->name, name);
|
||||||
}
|
}
|
||||||
else strcpy(where->name, "no name");
|
else strcpy(where->name, "<noname>");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* patch du 11 Décembre 2001: on utilise une fonction qui recherche le
|
* patch du 11 Décembre 2001: on utilise une fonction qui recherche le
|
||||||
|
51
Lib/ptlist.c
51
Lib/ptlist.c
@ -35,11 +35,10 @@ Image_PtList * Image_ptl_alloc(int nbre, char *name)
|
|||||||
Image_PtList *ptr;
|
Image_PtList *ptr;
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, "Image PtList: alloc: %d '%s'\n", nbre, name);
|
fprintf(stderr, ">>> %s ( %d '%s' )\n", __func__, nbre, name);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( (ptr=malloc(sizeof(Image_PtList)))==NULL)
|
if ( (ptr=malloc(sizeof(Image_PtList)))==NULL) {
|
||||||
{
|
|
||||||
fprintf(stderr, "Image PtList: struct malloc failed\n");
|
fprintf(stderr, "Image PtList: struct malloc failed\n");
|
||||||
#if FORCE_ABORT
|
#if FORCE_ABORT
|
||||||
abort();
|
abort();
|
||||||
@ -56,8 +55,7 @@ if (strlen(name) < IMG_OBJNAME_LEN)
|
|||||||
else
|
else
|
||||||
strcpy(ptr->name, "name too long");
|
strcpy(ptr->name, "name too long");
|
||||||
|
|
||||||
if ( (ptr->points=malloc(sizeof(Image_Point)*nbre))==NULL)
|
if ( (ptr->points=malloc(sizeof(Image_Point)*nbre))==NULL) {
|
||||||
{
|
|
||||||
fprintf(stderr, "Image PtList: array malloc failed\n");
|
fprintf(stderr, "Image PtList: array malloc failed\n");
|
||||||
#if FORCE_ABORT
|
#if FORCE_ABORT
|
||||||
abort();
|
abort();
|
||||||
@ -80,8 +78,7 @@ fprintf(stderr, "Image PtList: addpt to %p: %5d %5d %5d %5d\n",
|
|||||||
|
|
||||||
/* in first, we check if this is a valid point list */
|
/* in first, we check if this is a valid point list */
|
||||||
|
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "ptl addpt: invalid point list %p\n", ptl);
|
fprintf(stderr, "ptl addpt: invalid point list %p\n", ptl);
|
||||||
#if FORCE_ABORT
|
#if FORCE_ABORT
|
||||||
abort();
|
abort();
|
||||||
@ -91,12 +88,10 @@ if (ptl->control != 0xfde9601a)
|
|||||||
/*
|
/*
|
||||||
* in second, we check if we have room for the new point.
|
* in second, we check if we have room for the new point.
|
||||||
*/
|
*/
|
||||||
if (ptl->nbre==ptl->alloc)
|
if (ptl->nbre==ptl->alloc) {
|
||||||
{
|
|
||||||
newsize = ptl->alloc + 200;
|
newsize = ptl->alloc + 200;
|
||||||
fprintf(stderr, "ptl: realloc array %d\n", newsize);
|
fprintf(stderr, "ptl: realloc array %d\n", newsize);
|
||||||
if ((ptrpt=realloc(ptl->points, sizeof(Image_Point)*newsize))==NULL)
|
if ((ptrpt=realloc(ptl->points, sizeof(Image_Point)*newsize))==NULL) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: REALLOC FAIL\n", __func__);
|
fprintf(stderr, "%s: REALLOC FAIL\n", __func__);
|
||||||
exit(5);
|
exit(5);
|
||||||
}
|
}
|
||||||
@ -117,7 +112,7 @@ return FUNC_IS_BETA;
|
|||||||
/*
|
/*
|
||||||
* attention, il est _important_ de respecter le format d'écriture
|
* attention, il est _important_ de respecter le format d'écriture
|
||||||
* parce que les fichiers de liste de points sont parfois relus par
|
* parce que les fichiers de liste de points sont parfois relus par
|
||||||
* des programmes FORTRAN, beaucoup plus pointilleux sur le
|
* des programmes FORTRAN 77, beaucoup plus pointilleux sur le
|
||||||
* formatage des données.
|
* formatage des données.
|
||||||
*/
|
*/
|
||||||
int Image_ptl_write(char *filename, Image_PtList *ptl)
|
int Image_ptl_write(char *filename, Image_PtList *ptl)
|
||||||
@ -125,17 +120,15 @@ int Image_ptl_write(char *filename, Image_PtList *ptl)
|
|||||||
FILE *fp;
|
FILE *fp;
|
||||||
int foo;
|
int foo;
|
||||||
|
|
||||||
if ( (fp=fopen(filename, "w"))==NULL )
|
if ( (fp=fopen(filename, "w"))==NULL ) {
|
||||||
{
|
fprintf(stderr, "%s: write %s fopen fail.\n", __func__, filename);
|
||||||
fprintf(stderr, "Image PtList: write: fopen fail.\n");
|
|
||||||
return FILE_CREATE_ERR;
|
return FILE_CREATE_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(fp, "%8d\n", ptl->nbre);
|
fprintf(fp, "%8d\n", ptl->nbre);
|
||||||
fprintf(fp, "%08d%08d\n", ptl->width, ptl->height);
|
fprintf(fp, "%08d%08d\n", ptl->width, ptl->height);
|
||||||
fprintf(fp, "%08d%08d\n", 42, 42); /* reserved */
|
fprintf(fp, "%08d%08d\n", 42, 42); /* reserved */
|
||||||
for (foo=0; foo<ptl->nbre; foo++)
|
for (foo=0; foo<ptl->nbre; foo++) {
|
||||||
{
|
|
||||||
fprintf(fp, "%8d%8d%8d%8d\n",
|
fprintf(fp, "%8d%8d%8d%8d\n",
|
||||||
ptl->points[foo].x, ptl->points[foo].y,
|
ptl->points[foo].x, ptl->points[foo].y,
|
||||||
ptl->points[foo].h, ptl->points[foo].c);
|
ptl->points[foo].h, ptl->points[foo].c);
|
||||||
@ -155,8 +148,7 @@ int foo;
|
|||||||
fprintf(stderr, ">>> %s ( '%s' %p )\n", __func__, filename, ptl);
|
fprintf(stderr, ">>> %s ( '%s' %p )\n", __func__, filename, ptl);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
||||||
fprintf(stderr, " can't read '%s'\n", filename);
|
fprintf(stderr, " can't read '%s'\n", filename);
|
||||||
return 666;
|
return 666;
|
||||||
@ -175,8 +167,7 @@ int Image_ptl_kill(Image_PtList *ptl, char *msg)
|
|||||||
fprintf(stderr, "Killing point list %p for '%s'\n", ptl, msg);
|
fprintf(stderr, "Killing point list %p for '%s'\n", ptl, msg);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
||||||
return 666;
|
return 666;
|
||||||
}
|
}
|
||||||
@ -198,8 +189,7 @@ return FULL_NUCKED;
|
|||||||
int
|
int
|
||||||
Image_ptl_get_size(Image_PtList *ptl, int *nbre, int *alloc)
|
Image_ptl_get_size(Image_PtList *ptl, int *nbre, int *alloc)
|
||||||
{
|
{
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
||||||
return 666;
|
return 666;
|
||||||
}
|
}
|
||||||
@ -211,19 +201,16 @@ return OLL_KORRECT;
|
|||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int Image_ptl_get_point(Image_PtList *ptl, Image_Point *pt, int idx)
|
int Image_ptl_get_point(Image_PtList *ptl, Image_Point *pt, int idx)
|
||||||
{
|
{
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
||||||
return 666;
|
return 666;
|
||||||
}
|
}
|
||||||
if (idx < 0)
|
if (idx < 0) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s:%s point idx %d is negative, so bad !\n",
|
fprintf(stderr, "%s:%s point idx %d is negative, so bad !\n",
|
||||||
__FILE__, __func__, idx);
|
__FILE__, __func__, idx);
|
||||||
return FULL_NUCKED;
|
return FULL_NUCKED;
|
||||||
}
|
}
|
||||||
if (idx>ptl->nbre)
|
if (idx>ptl->nbre) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s:%s point idx %d is too big, so bad !\n",
|
fprintf(stderr, "%s:%s point idx %d is too big, so bad !\n",
|
||||||
__FILE__, __func__, idx);
|
__FILE__, __func__, idx);
|
||||||
return FULL_NUCKED;
|
return FULL_NUCKED;
|
||||||
@ -243,8 +230,7 @@ int Image_ptl_boundingbox(Image_PtList *ptl, Image_Rect *box)
|
|||||||
int xmin, ymin, xmax, ymax;
|
int xmin, ymin, xmax, ymax;
|
||||||
int foo;
|
int foo;
|
||||||
|
|
||||||
if (ptl->control != 0xfde9601a)
|
if (ptl->control != 0xfde9601a) {
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
fprintf(stderr, "%s: no deadbeef in %p\n", __func__, ptl);
|
||||||
return 666;
|
return 666;
|
||||||
}
|
}
|
||||||
@ -252,8 +238,7 @@ if (ptl->control != 0xfde9601a)
|
|||||||
xmin = ymin = 999999999;
|
xmin = ymin = 999999999;
|
||||||
xmax = ymax = -999999999;
|
xmax = ymax = -999999999;
|
||||||
|
|
||||||
for (foo=0; foo<ptl->nbre; foo++)
|
for (foo=0; foo<ptl->nbre; foo++) {
|
||||||
{
|
|
||||||
if (ptl->points[foo].x < xmin) xmin = ptl->points[foo].x;
|
if (ptl->points[foo].x < xmin) xmin = ptl->points[foo].x;
|
||||||
if (ptl->points[foo].x > xmax) xmax = ptl->points[foo].x;
|
if (ptl->points[foo].x > xmax) xmax = ptl->points[foo].x;
|
||||||
if (ptl->points[foo].y < ymin) ymin = ptl->points[foo].y;
|
if (ptl->points[foo].y < ymin) ymin = ptl->points[foo].y;
|
||||||
|
@ -179,7 +179,7 @@ fprintf(stderr, "%s: ltr %3d '%c' %4d %4d\n", __func__, lettre,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* use default if not provided my caller
|
* use default if not provided by caller
|
||||||
*/
|
*/
|
||||||
if (NULL==pap) pap = &blanc;
|
if (NULL==pap) pap = &blanc;
|
||||||
if (NULL==ink) ink = &noir;
|
if (NULL==ink) ink = &noir;
|
||||||
|
26
Lib/turtle.c
26
Lib/turtle.c
@ -9,16 +9,16 @@
|
|||||||
#include "../tthimage.h"
|
#include "../tthimage.h"
|
||||||
|
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int
|
int Image_turtle_infos(Image_Desc *img, int flags)
|
||||||
Image_turtle_infos(Image_Desc *img, int flags)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
#if DEBUG_LEVEL
|
||||||
fprintf(stderr, "Image turtle infos: flags = %04x\n", flags);
|
fprintf(stderr, "Image turtle infos: flags = %04x\n", flags);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( flags & 1 )
|
if ( flags & 1 ) {
|
||||||
Image_dump_descriptor(img, "turtle infos");
|
Image_dump_descriptor(img, "turtle infos");
|
||||||
|
}
|
||||||
|
|
||||||
return FUNC_IS_ALPHA;
|
return FUNC_IS_ALPHA;
|
||||||
}
|
}
|
||||||
@ -29,8 +29,7 @@ return FUNC_IS_ALPHA;
|
|||||||
* Q: pourquoi le canal alpha n'est pas pris en compte ?
|
* Q: pourquoi le canal alpha n'est pas pris en compte ?
|
||||||
* A: parce que :)
|
* A: parce que :)
|
||||||
*/
|
*/
|
||||||
int
|
int Image_turtle_setcolors(Image_Desc *img, int r, int g, int b)
|
||||||
Image_turtle_setcolors(Image_Desc *img, int r, int g, int b)
|
|
||||||
{
|
{
|
||||||
img->rt = r; img->gt = g; img->bt = b;
|
img->rt = r; img->gt = g; img->bt = b;
|
||||||
|
|
||||||
@ -39,23 +38,28 @@ img->at = 0; /* ? bonne valeur ? */
|
|||||||
return FUNC_IS_ALPHA;
|
return FUNC_IS_ALPHA;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int
|
int Image_turtle_move(Image_Desc *img, double xt, double yt)
|
||||||
Image_turtle_move(Image_Desc *img, double xt, double yt)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
fprintf(stderr, ">>> %s ( %p %f %f )\n", __func__, img, xt, yt);
|
||||||
|
|
||||||
img->xt = xt;
|
img->xt = xt;
|
||||||
img->yt = yt;
|
img->yt = yt;
|
||||||
|
|
||||||
fprintf(stderr, ">>> %s ( %p %f %f )\n", __func__, img, xt, yt);
|
|
||||||
|
|
||||||
return FUNC_NOT_FINISH;
|
return FUNC_NOT_FINISH;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int
|
int Image_turtle_draw(Image_Desc *img, double xt, double yt)
|
||||||
Image_turtle_draw(Image_Desc *img, double xt, double yt)
|
|
||||||
{
|
{
|
||||||
|
int x1, y1, x2, y2;
|
||||||
|
RGBA color = { 200, 200, 200, 0, 0, 0 };
|
||||||
|
|
||||||
fprintf(stderr, ">>> %s ( %p %f %f )\n", __func__, img, xt, yt);
|
fprintf(stderr, ">>> %s ( %p %f %f )\n", __func__, img, xt, yt);
|
||||||
|
|
||||||
|
x1 = (int)img->xt, y1 = (int)img->yt;
|
||||||
|
x2 = (int)xt , y2 = (int)yt;
|
||||||
|
|
||||||
|
Image_draw_line(img, x1, y1, x2, y2, &color);
|
||||||
|
|
||||||
return FUNC_NOT_FINISH;
|
return FUNC_NOT_FINISH;
|
||||||
}
|
}
|
||||||
|
10
Lib/warp0.c
10
Lib/warp0.c
@ -65,13 +65,13 @@ for (y=0; y<dst->height; y++) {
|
|||||||
return FUNC_IS_BETA;
|
return FUNC_IS_BETA;
|
||||||
}
|
}
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int
|
int Image_warp_essai_1(Image_Desc *src, Image_Desc *dst, double angle, double shift)
|
||||||
Image_warp_essai_1(Image_Desc *src, Image_Desc *dst, double angle)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
#if DEBUG_LEVEL
|
fprintf(stderr, ">>> %s ( %p %p %f %f )\n", __func__, src, dst, angle, shift);
|
||||||
fprintf(stderr, "Warp 1: what I can do here ?\n");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
return FUNC_NOT_FINISH;
|
return FUNC_NOT_FINISH;
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ HTML_DIR=$(DESTDIR)/html
|
|||||||
# use -Wmissing-prototypes ?
|
# use -Wmissing-prototypes ?
|
||||||
|
|
||||||
LIBIMG_OPT=-DFORCE_ABORT=0 -DDEBUG_LEVEL=0 -DIMGCOMMENT=0
|
LIBIMG_OPT=-DFORCE_ABORT=0 -DDEBUG_LEVEL=0 -DIMGCOMMENT=0
|
||||||
CC_OPTS=-Wall -W -g -ansi -O3 -fPIC -no-pie
|
CC_OPTS=-Wall -W -g -ansi -O0 -fPIC -no-pie
|
||||||
CC_HACKS=-DNEED_ALLOCA_H
|
CC_HACKS=-DNEED_ALLOCA_H
|
||||||
|
|
||||||
CFLAGS= $(CC_OPTS) \
|
CFLAGS= $(CC_OPTS) \
|
||||||
|
@ -15,7 +15,7 @@ Le second, [`install.sh`](./install.sh) va mettre les choses au bon endroit.
|
|||||||
Il est vivement conseillé de bien les lire avant de les utiliser.
|
Il est vivement conseillé de bien les lire avant de les utiliser.
|
||||||
|
|
||||||
Les options globales de compilation sont dans
|
Les options globales de compilation sont dans
|
||||||
[Paramakes.mk](Paramakes.mk). Là aussi, soyez attentifs
|
[Paramakes.mk](Paramakes.mk). Là aussi, soyez attentifs.
|
||||||
|
|
||||||
## Utilisation
|
## Utilisation
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
test_des_xpers ()
|
test_des_xpers ()
|
||||||
{
|
{
|
||||||
command=$1
|
command=$1
|
||||||
echo ; echo " Test du xper $command"
|
echo ; echo "======= Test du xper $command"
|
||||||
|
|
||||||
# generation d'une image sur laquelle travailler
|
# generation d'une image sur laquelle travailler
|
||||||
$COMDIR/tga_mires mircol0 $SRC "hard xper '$command'"
|
$COMDIR/tga_mires mircol0 $SRC "hard xper '$command'"
|
||||||
|
@ -51,7 +51,7 @@ if (foo) { Image_print_error("load thin font", foo); }
|
|||||||
foo = Image_t16x24_chars_map("16x24gruik", "all16X24chars.tga", 2);
|
foo = Image_t16x24_chars_map("16x24gruik", "all16X24chars.tga", 2);
|
||||||
if (foo) { Image_print_error("load gruik font", foo); }
|
if (foo) { Image_print_error("load gruik font", foo); }
|
||||||
|
|
||||||
fprintf(stderr, "--------------------------\n");
|
fprintf(stderr, "--------------------------------------\n");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
foo = essai_f1("pov.tga", "/tmp/aaaa_plop.tga", "0123456789");
|
foo = essai_f1("pov.tga", "/tmp/aaaa_plop.tga", "0123456789");
|
||||||
|
@ -10,6 +10,7 @@ install -m 0644 tthimage.h $DESTDIR/include/tthimage.h
|
|||||||
|
|
||||||
cp -v Datas/8x8thin Datas/16x24thin $DESTDIR/share/libimage/
|
cp -v Datas/8x8thin Datas/16x24thin $DESTDIR/share/libimage/
|
||||||
cp -v Datas/8x8std Datas/16x24gruik $DESTDIR/share/libimage/
|
cp -v Datas/8x8std Datas/16x24gruik $DESTDIR/share/libimage/
|
||||||
|
cp -v Datas/*.map $DESTDIR/share/libimage/
|
||||||
|
|
||||||
liste="genplot2 tga_cadre tga_effects tga_filtres tga_remap tga_tools \
|
liste="genplot2 tga_cadre tga_effects tga_filtres tga_remap tga_tools \
|
||||||
tga_combine tga_television tga_dither tga_applymap tga_makehf15 \
|
tga_combine tga_television tga_dither tga_applymap tga_makehf15 \
|
||||||
|
18
tthimage.h
18
tthimage.h
@ -4,7 +4,7 @@
|
|||||||
http://la.buvette.org/devel/libimage/
|
http://la.buvette.org/devel/libimage/
|
||||||
*/
|
*/
|
||||||
#ifndef IMAGE_VERSION_STRING
|
#ifndef IMAGE_VERSION_STRING
|
||||||
#define IMAGE_VERSION_STRING "0.4.51 pl 62"
|
#define IMAGE_VERSION_STRING "0.4.51 pl 80"
|
||||||
|
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
/*
|
/*
|
||||||
@ -609,19 +609,15 @@ int Image_quelques_calculs(Image_Desc *image);
|
|||||||
|
|
||||||
int Image_histo_RGB(Image_Desc *im, long *hr, long *hg, long *hb);
|
int Image_histo_RGB(Image_Desc *im, long *hr, long *hg, long *hb);
|
||||||
|
|
||||||
/* XXX may be we need a struct for RGB luts ? */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int magic;
|
|
||||||
uint8_t R[256];
|
|
||||||
uint8_t G[256];
|
|
||||||
uint8_t B[256];
|
|
||||||
int flags;
|
|
||||||
} Image_LUTs;
|
|
||||||
|
|
||||||
int Image_LUT_RGB(Image_Desc *, Image_Desc *, int *, int *, int *);
|
int Image_LUT_RGB(Image_Desc *, Image_Desc *, int *, int *, int *);
|
||||||
int Image_LUT_mono(Image_Desc *src, Image_Desc *dst, int *lut);
|
int Image_LUT_mono(Image_Desc *src, Image_Desc *dst, int *lut);
|
||||||
|
|
||||||
|
/* falsecolors.c */
|
||||||
|
|
||||||
|
int Image_gen_fc_lut(float maxval, int nbslots, RGB_map *plut);
|
||||||
|
|
||||||
|
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
/* module distances.c */
|
/* module distances.c */
|
||||||
|
|
||||||
@ -1310,7 +1306,7 @@ int Image_vectfont_text_0(Image_Desc *im, char *txt, int x, int y);
|
|||||||
|
|
||||||
int Image_warp_essai_0(Image_Desc *src, Image_Desc *dst, double angle,
|
int Image_warp_essai_0(Image_Desc *src, Image_Desc *dst, double angle,
|
||||||
int xc, int yc);
|
int xc, int yc);
|
||||||
int Image_warp_essai_1(Image_Desc *src, Image_Desc *dst, double angle);
|
int Image_warp_essai_1(Image_Desc *src, Image_Desc *dst, double ang, double off);
|
||||||
|
|
||||||
/*::------------------------------------------------------------------::*/
|
/*::------------------------------------------------------------------::*/
|
||||||
int Image_center_rotate(Image_Desc *src, Image_Desc *dst, double angle);
|
int Image_center_rotate(Image_Desc *src, Image_Desc *dst, double angle);
|
||||||
|
Loading…
Reference in New Issue
Block a user