Compare commits
No commits in common. "60409a050cfa74534c1d02857ba9f10dd79042a0" and "99b580a1d7325face434363baaf66bc7f827f28b" have entirely different histories.
60409a050c
...
99b580a1d7
12
.gitignore
vendored
12
.gitignore
vendored
@ -9,19 +9,9 @@ Lib/foo
|
||||
Lib/testtga
|
||||
Lib/t_t16x24
|
||||
|
||||
Tools/genplot2
|
||||
|
||||
Tools/tga_cadre
|
||||
Tools/tga_combine
|
||||
Tools/tga_dither
|
||||
Tools/tga_tools
|
||||
Tools/tga_effects
|
||||
Tools/tga_equalize
|
||||
Tools/tga_filtres
|
||||
Tools/tga_remap
|
||||
Tools/tga_television
|
||||
Tools/tga_applymap
|
||||
Tools/tga_makehf15
|
||||
Tools/tga_mires
|
||||
Tools/tga_incrust
|
||||
Tools/tga_pattern
|
||||
|
||||
|
@ -38,7 +38,6 @@ combine3.o: combine3.c $(DEPS)
|
||||
combine4.o: combine4.c $(DEPS)
|
||||
combine5.o: combine5.c $(DEPS)
|
||||
combine6.o: combine6.c $(DEPS)
|
||||
contrast.o: contrast.c $(DEPS)
|
||||
|
||||
detect.o: detect.c $(DEPS)
|
||||
distances.o: distances.c $(DEPS)
|
||||
@ -103,7 +102,6 @@ rgbmask.o: rgbmask.c $(DEPS)
|
||||
|
||||
scale.o: scale.c $(DEPS)
|
||||
sobel4.o: sobel4.c $(DEPS)
|
||||
stereo.o: stereo.c $(DEPS)
|
||||
|
||||
tamppool.o: tamppool.c $(DEPS)
|
||||
tele_2.o: tele_2.c $(DEPS)
|
||||
@ -132,8 +130,6 @@ OBJECTS = 7seg.o \
|
||||
calculs.o classif.o \
|
||||
col4bits.o colors.o colors2.o col_reduc.o col_xyz.o \
|
||||
combine.o combine2.o combine3.o combine4.o combine5.o \
|
||||
combine6.o combine_rnd.o \
|
||||
contrast.o \
|
||||
detect.o distances.o \
|
||||
dither.o dither2.o dither3.o dither4.o \
|
||||
doublesz.o drawalpha.o drawing.o drawpatt.o \
|
||||
@ -153,7 +149,7 @@ OBJECTS = 7seg.o \
|
||||
pov_hf15e.o pov_hf15e.o pov_hf15f.o pov_synth.o \
|
||||
ptlist.o \
|
||||
recurse.o rgbmask.o \
|
||||
scale.o sobel4.o stereo.o \
|
||||
scale.o sobel4.o \
|
||||
tamppool.o tele_2.o television.o \
|
||||
text0.o text1.o text16x24.o \
|
||||
tga.o tools.o \
|
||||
|
@ -9,7 +9,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "../tthimage.h"
|
||||
#include "tthimage.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include "../tthimage.h"
|
||||
#include "tthimage.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
|
@ -1314,7 +1314,7 @@ if (NULL == dst)
|
||||
|
||||
foo = Image_lissage_3x3(src, dst);
|
||||
Image_TGA_save("Pictures/filtre-liss3x3.tga", dst, 0);
|
||||
if (foo) { fprintf(stderr, "%s: liss3x3 -> %d\n", __func__, foo); }
|
||||
if (foo) { fprintf(stderr, "%s: liss3x3 -> %d\n", foo); }
|
||||
foo = Image_filtre_Prewitt(src, dst, 5);
|
||||
Image_TGA_save("Pictures/filtre-prewitt-5.tga", dst, 0);
|
||||
foo = Image_filtre_passe_haut(src, dst);
|
||||
|
126
Lib/stereo.c
126
Lib/stereo.c
@ -1,126 +0,0 @@
|
||||
/*
|
||||
+[
|
||||
S=T=R=E=R=E=O
|
||||
]+
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "../tthimage.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* première fonction, assez primitive, mais qui marche.
|
||||
*/
|
||||
int
|
||||
Image_combine_stereo_0(Image_Desc *gauche, Image_Desc *droite,
|
||||
Image_Desc *stereo)
|
||||
{
|
||||
int x, y, foo;
|
||||
int rouge, vert;
|
||||
|
||||
if ( (foo=Image_compare_desc(gauche, droite)) )
|
||||
{
|
||||
fprintf(stderr, "Combine Stereo 0: sources are differents (%d)\n", foo);
|
||||
return foo;
|
||||
}
|
||||
|
||||
if ( (foo=Image_compare_desc(gauche, stereo)) )
|
||||
{
|
||||
fprintf(stderr, "Combine Stereo 0: dest have a bad dim (%d)\n", foo);
|
||||
return foo;
|
||||
}
|
||||
|
||||
for (y=0; y<gauche->height; y++)
|
||||
{
|
||||
for (x=0; x<droite->width; x++)
|
||||
{
|
||||
rouge = ( Image_R_pixel(droite, x, y)+
|
||||
Image_G_pixel(droite, x, y)+
|
||||
Image_B_pixel(droite, x, y) ) / 3;
|
||||
vert = ( Image_R_pixel(gauche, x, y)+
|
||||
Image_G_pixel(gauche, x, y)+
|
||||
Image_B_pixel(gauche, x, y) ) / 3;
|
||||
Image_plotRGB(stereo, x, y, rouge, vert, 0);
|
||||
}
|
||||
}
|
||||
|
||||
stereo->modified = 1;
|
||||
|
||||
return OLL_KORRECT;
|
||||
}
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* celui-ci semble le meme que le '_0', mais il va probablement
|
||||
* evoluer... Et il serait vraiment bien que je trouve de la doc
|
||||
* sur les differents parametres chromatiques.
|
||||
* =============================================================
|
||||
* En fait (30 janv 2008, ave StEx) au lieu de faire du Rouge/Vert
|
||||
* il va faire du Rouge/Bleu. A la demande de Ker2x.
|
||||
*/
|
||||
int
|
||||
Image_combine_stereo_1(Image_Desc *s1, Image_Desc *s2, Image_Desc *d,
|
||||
int kr, int kg, int kb)
|
||||
{
|
||||
int x, y, foo, cumul;
|
||||
int rouge, bleu;
|
||||
|
||||
if ( (foo=Image_compare_desc(s1, s2)) )
|
||||
{
|
||||
fprintf(stderr, "Combine Stereo 1: sources are differents (%d)\n", foo);
|
||||
return foo;
|
||||
}
|
||||
if ( (foo=Image_compare_desc(s1, d)) )
|
||||
{
|
||||
fprintf(stderr, "Combine Stereo 1: dest have a bad dim (%d)\n", foo);
|
||||
return foo;
|
||||
}
|
||||
|
||||
cumul = kr + kg + kb;
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "Combine Stereo 1: coefs are %d %d %d\n", kr, kg, kb);
|
||||
fprintf(stderr, "Combine Stereo 1: cumul is %d\n", cumul);
|
||||
#endif
|
||||
|
||||
for (y=0; y<s1->height; y++)
|
||||
{
|
||||
for (x=0; x<s1->width; x++)
|
||||
{
|
||||
rouge = Image_R_pixel(s2, x, y) * kr +
|
||||
Image_G_pixel(s2, x, y) * kg +
|
||||
Image_B_pixel(s2, x, y) * kb;
|
||||
rouge /= cumul;
|
||||
bleu = Image_R_pixel(s1, x, y) * kr +
|
||||
Image_G_pixel(s1, x, y) * kg +
|
||||
Image_B_pixel(s1, x, y) * kb;
|
||||
bleu /= cumul;
|
||||
Image_plotRGB(d, x, y, rouge, 0, bleu);
|
||||
}
|
||||
}
|
||||
|
||||
d->modified = 1;
|
||||
|
||||
return FUNC_IS_BETA;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* Et pour celui-ci, il faudrait trouver une façon de définir
|
||||
* les composantes pour l'image destination, afin de tenir
|
||||
* compte des filtres qui seront dans les lunettes...
|
||||
*/
|
||||
int
|
||||
Image_combine_stereo_2(Image_Desc *s1, Image_Desc *s2, Image_Desc *d,
|
||||
char cr, char cl)
|
||||
{
|
||||
/* XXX
|
||||
int x, y, foo;
|
||||
int rouge, vert, bleu;
|
||||
XXX */
|
||||
|
||||
fprintf(stderr, "%s: %s missing, sorry.\n", __FILE__, __func__);
|
||||
|
||||
return FULL_NUCKED;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
352
Makefile
Normal file
352
Makefile
Normal file
@ -0,0 +1,352 @@
|
||||
#-----------------------------------------------------------------
|
||||
# 1er Fevrier 2000: Je met une cible pour installer
|
||||
# les fichiers dans le systeme. C'est assez
|
||||
# rudimentaire/arbitraire, mais c,a marche
|
||||
# a peu pres, mieux que le Momo...
|
||||
#
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
DESTDIR=/usr/local
|
||||
SHARED_FILES=$(DESTDIR)/share/libimage
|
||||
HTML_DIR=$(DESTDIR)/html
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
#
|
||||
# pour le debuging: option -g
|
||||
# pour le profiling: option -pg
|
||||
# pour tracer plein de trucs: -DDEBUG_LEVEL=1
|
||||
# if IMGCOMMENT, the image comment is written to the TGA file,
|
||||
# but this files can't be loaded by Xv...
|
||||
# pour coredumper dans les situations graves: -DABORT=1
|
||||
#
|
||||
# --> see file 'PORTING.txt' for porting tips on misc
|
||||
# architextures (just sparc64 for now)
|
||||
#
|
||||
|
||||
LIBIMG_OPT=-DFORCE_ABORT=1 -DDEBUG_LEVEL=0 -DIMGCOMMENT=0
|
||||
CC_OPTS=-Wall -W -g -ansi -Wmissing-prototypes -fPIC -no-pie
|
||||
CC_HACKS=-DNEED_ALLOCA_H
|
||||
CFLAGS= $(CC_OPTS) \
|
||||
$(LIBIMG_OPT) \
|
||||
$(CC_HACKS) \
|
||||
-DDESTDIR=\"$(DESTDIR)\" \
|
||||
-DSHAREDIR=\"$(SHARED_FILES)\" \
|
||||
-DCC_OPTS=\"'$(CC_OPTS)'\"
|
||||
LINKOPT=-lm
|
||||
RANLIB=wc -c
|
||||
|
||||
# modify it 'as you like'
|
||||
AR=ar
|
||||
|
||||
#-------- essentials targets
|
||||
|
||||
all: testtga libs
|
||||
libs: libimage.a libimageSO.so
|
||||
trucs: t_t16x24 fnt8to16 t_png
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
image.o: image.c tthimage.h Makefile
|
||||
filtres.o: filtres.c tthimage.h
|
||||
filtadapt.o: filtadapt.c tthimage.h
|
||||
sobel4.o: sobel4.c tthimage.h
|
||||
showdiff.o: showdiff.c tthimage.h
|
||||
effects.o: effects.c tthimage.h Makefile
|
||||
effects2.o: effects2.c tthimage.h
|
||||
effects3.o: effects3.c tthimage.h
|
||||
television.o: television.c tthimage.h Makefile
|
||||
tele_2.o: tele_2.c tthimage.h Makefile
|
||||
classif.o: classif.c tthimage.h
|
||||
combine.o: combine.c tthimage.h
|
||||
combine2.o: combine2.c tthimage.h
|
||||
combine3.o: combine3.c tthimage.h
|
||||
combine4.o: combine4.c tthimage.h
|
||||
combine5.o: combine5.c tthimage.h
|
||||
combine6.o: combine6.c tthimage.h Makefile
|
||||
combine_rnd.o: combine_rnd.c tthimage.h
|
||||
basic_io.o: basic_io.c tthimage.h
|
||||
pcx.o: pcx.c tthimage.h
|
||||
png.o: png.c tthimage.h
|
||||
bmp.o: bmp.c tthimage.h bmp.h
|
||||
tga.o: tga.c tthimage.h Makefile
|
||||
eps.o: eps.c tthimage.h
|
||||
pht.o: pht.c tthimage.h
|
||||
pnm.o: pnm.c tthimage.h
|
||||
fits.o: fits.c tthimage.h
|
||||
zoom.o: zoom.c tthimage.h
|
||||
gadgrect.o: gadgrect.c tthimage.h
|
||||
ascii.o: ascii.c tthimage.h
|
||||
asciiart.o: asciiart.c tthimage.h
|
||||
glitch.o: glitch.c tthimage.h Makefile
|
||||
contours.o: contours.c tthimage.h Makefile
|
||||
calculs.o: calculs.c tthimage.h Makefile
|
||||
contrast.o: contrast.c tthimage.h Makefile
|
||||
calcluts.o: calcluts.c tthimage.h
|
||||
luts15bits.o: luts15bits.c tthimage.h
|
||||
gamma.o: gamma.c tthimage.h
|
||||
quadpics.o: quadpics.c tthimage.h Makefile
|
||||
colors.o: colors.c tthimage.h Makefile
|
||||
colors2.o: colors2.c tthimage.h
|
||||
col_xyz.o: col_xyz.c tthimage.h
|
||||
palettes.o: palettes.c tthimage.h
|
||||
indexcol.o: indexcol.c tthimage.h
|
||||
col_reduc.o: col_reduc.c tthimage.h Makefile
|
||||
drawpatt.o: drawpatt.c tthimage.h
|
||||
operat.o: operat.c tthimage.h Makefile
|
||||
stereo.o: stereo.c tthimage.h
|
||||
tools.o: tools.c tthimage.h
|
||||
mircol.o: mircol.c tthimage.h
|
||||
mustopen.o: mustopen.c tthimage.h Makefile
|
||||
msglib.o: msglib.c tthimage.h Makefile
|
||||
ptlist.o: ptlist.c tthimage.h Makefile
|
||||
dither.o: dither.c tthimage.h Makefile
|
||||
dither2.o: dither2.c tthimage.h Makefile
|
||||
dither3.o: dither3.c tthimage.h Makefile
|
||||
dither4.o: dither4.c tthimage.h Makefile
|
||||
bitblt.o: bitblt.c tthimage.h Makefile
|
||||
detect.o: detect.c tthimage.h Makefile
|
||||
detect2.o: detect2.c tthimage.h Makefile
|
||||
op2x2.o: op2x2.c tthimage.h
|
||||
morpho.o: morpho.c tthimage.h
|
||||
recurse.o: recurse.c tthimage.h
|
||||
drawing.o: drawing.c tthimage.h Makefile
|
||||
draw_alpha.o: draw_alpha.c tthimage.h
|
||||
marques.o: marques.c tthimage.h Makefile
|
||||
pov_hf15.o: pov_hf15.c tthimage.h
|
||||
pov_hf15b.o: pov_hf15b.c tthimage.h
|
||||
pov_hf15c.o: pov_hf15c.c tthimage.h
|
||||
pov_hf15d.o: pov_hf15d.c tthimage.h
|
||||
pov_hf15e.o: pov_hf15e.c tthimage.h
|
||||
pov_hf15f.o: pov_hf15f.c tthimage.h
|
||||
pov_hf_synth.o: pov_hf_synth.c tthimage.h
|
||||
df3.o: df3.c tthimage.h
|
||||
df3b.o: df3b.c tthimage.h
|
||||
cadres.o: cadres.c tthimage.h Makefile
|
||||
cadres2.o: cadres2.c tthimage.h
|
||||
cadres3.o: cadres3.c tthimage.h
|
||||
cadres4.o: cadres4.c tthimage.h
|
||||
cadres84.o: cadres84.c tthimage.h
|
||||
cadresbox.o: cadresbox.c tthimage.h Makefile
|
||||
alpha.o: alpha.c tthimage.h Makefile
|
||||
alpha2.o: alpha2.c tthimage.h
|
||||
alpha3.o: alpha3.c tthimage.h
|
||||
mosaic.o: mosaic.c tthimage.h Makefile
|
||||
text0.o: text0.c tthimage.h Makefile
|
||||
text1.o: text1.c tthimage.h Makefile
|
||||
text2.o: text2.c tthimage.h Makefile
|
||||
text16x24.o: text16x24.c tthimage.h Makefile
|
||||
freetype.o: freetype.c tthimage.h
|
||||
vectfont.o: vectfont.c tthimage.h
|
||||
scale.o: scale.c tthimage.h
|
||||
halfsize.o: halfsize.c tthimage.h Makefile
|
||||
doublesz.o: doublesz.c tthimage.h
|
||||
levels.o: levels.c tthimage.h
|
||||
patterns2.o: patterns2.c tthimage.h Makefile
|
||||
patterns.o: patterns.c tthimage.h
|
||||
patterns3.o: patterns3.c tthimage.h
|
||||
patterns4.o: patterns4.c tthimage.h
|
||||
insert.o: insert.c tthimage.h Makefile
|
||||
plotteur.o: plotteur.c tthimage.h Makefile
|
||||
imprime.o: imprime.c tthimage.h Makefile
|
||||
col4bits.o: col4bits.c tthimage.h Makefile
|
||||
dumppix.o: dumppix.c tthimage.h
|
||||
warp0.o: warp0.c tthimage.h
|
||||
warp1.o: warp1.c tthimage.h
|
||||
warp2.o: warp2.c tthimage.h
|
||||
warp3.o: warp3.c tthimage.h
|
||||
xper.o: xper.c tthimage.h Makefile
|
||||
dissolve.o: dissolve.c tthimage.h
|
||||
troisD.o: troisD.c tthimage.h
|
||||
turtle.o: turtle.c tthimage.h
|
||||
cjpeg.o: cjpeg.c tthimage.h
|
||||
rgbmask.o: rgbmask.c tthimage.h
|
||||
octree.o: octree.c tthimage.h
|
||||
addborder.o: addborder.c tthimage.h
|
||||
fill_pat.o: fill_pat.c tthimage.h
|
||||
vectfont.o: vectfont.c tthimage.h
|
||||
photomaton.o: photomaton.c tthimage.h Makefile
|
||||
pixeliz.o: pixeliz.c tthimage.h Makefile
|
||||
pixels.o: pixels.c tthimage.h Makefile
|
||||
anamorphose.o: anamorphose.c tthimage.h Makefile
|
||||
life.o: life.c tthimage.h
|
||||
tamppool.o: tamppool.c tthimage.h
|
||||
vignetize.o: vignetize.c tthimage.h
|
||||
7seg.o: 7seg.c tthimage.h Makefile
|
||||
bitplanes.o: bitplanes.c tthimage.h Makefile
|
||||
distances.o: distances.c tthimage.h Makefile
|
||||
gray_ops.o: gray_ops.c tthimage.h Makefile
|
||||
extractbits.o: extractbits.c tthimage.h Makefile
|
||||
jauges.o: jauges.c tthimage.h Makefile
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
OBJECTS= image.o filtres.o effects.o operat.o \
|
||||
tamppool.o gray_ops.o \
|
||||
calculs.o calcluts.o luts15bits.o \
|
||||
octree.o filtadapt.o sobel4.o \
|
||||
classif.o vignetize.o \
|
||||
gamma.o zoom.o gadgrect.o \
|
||||
pht.o eps.o pnm.o png.o \
|
||||
bmp.o pcx.o tga.o \
|
||||
colors.o colors2.o col_reduc.o col_xyz.o \
|
||||
tools.o mircol.o imprime.o \
|
||||
combine.o combine2.o combine3.o combine4.o combine5.o \
|
||||
combine6.o combine_rnd.o \
|
||||
turtle.o marques.o rgbmask.o \
|
||||
television.o tele_2.o \
|
||||
effects2.o effects3.o \
|
||||
contrast.o glitch.o \
|
||||
basic_io.o mustopen.o ptlist.o \
|
||||
anamorphose.o quadpics.o \
|
||||
dither.o dither2.o dither3.o dither4.o \
|
||||
bitblt.o detect.o op2x2.o detect2.o \
|
||||
drawing.o draw_alpha.o drawpatt.o \
|
||||
pov_hf15.o pov_hf15b.o pov_hf15c.o pov_hf15d.o \
|
||||
pov_hf15e.o pov_hf15f.o \
|
||||
pov_hf_synth.o df3.o df3b.o \
|
||||
alpha.o alpha2.o alpha3.o \
|
||||
text0.o text1.o text2.o text16x24.o \
|
||||
freetype.o vectfont.o \
|
||||
cadres.o cadres2.o cadres3.o cadres4.o \
|
||||
cadres84.o cadresbox.o 7seg.o \
|
||||
dissolve.o photomaton.o \
|
||||
mosaic.o life.o extractbits.o \
|
||||
palettes.o col4bits.o indexcol.o \
|
||||
xper.o showdiff.o \
|
||||
scale.o halfsize.o doublesz.o \
|
||||
levels.o stereo.o jauges.o \
|
||||
patterns4.o patterns3.o patterns2.o patterns.o \
|
||||
fill_pat.o pixeliz.o pixels.o \
|
||||
insert.o addborder.o \
|
||||
morpho.o ascii.o plotteur.o dumppix.o asciiart.o \
|
||||
warp0.o warp1.o warp2.o warp3.o \
|
||||
fits.o recurse.o msglib.o troisD.o \
|
||||
cjpeg.o bitplanes.o distances.o
|
||||
|
||||
libimage.a: $(OBJECTS)
|
||||
$(AR) r libimage.a $?
|
||||
$(RANLIB) libimage.a
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
# WARNING !!!
|
||||
# this is my first trial on shared library, so
|
||||
# use with care... and what is the "-PIC" option ?
|
||||
#
|
||||
|
||||
libimageSO.so: $(OBJECTS)
|
||||
gcc -o libimageSO.so -shared $(OBJECTS)
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
#
|
||||
# fabrication du (des) programme(s) de test.
|
||||
#
|
||||
|
||||
essais.o: essais.c tthimage.h Makefile essais.h
|
||||
essais2.o: essais2.c tthimage.h Makefile essais.h
|
||||
all_tests.o: all_tests.c tthimage.h Makefile essais.h
|
||||
essai3d.o: essai3d.c tthimage.h Makefile
|
||||
|
||||
testtga.o: testtga.c tthimage.h essais.h Makefile
|
||||
gcc $(CFLAGS) -c testtga.c
|
||||
testtga: testtga.o libimage.a essais.o essais2.o all_tests.o Makefile
|
||||
gcc $(CFLAGS) testtga.o essais.o essais2.o all_tests.o libimage.a -lm -o testtga
|
||||
|
||||
testrect.o: testrect.c tthimage.h essais.h Makefile
|
||||
gcc $(CFLAGS) -c testrect.c
|
||||
testrect: testrect.o libimage.a Makefile
|
||||
gcc $(CFLAGS) testrect.o libimage.a -lm -o testrect
|
||||
|
||||
testSO: testtga.o libimageSO.so
|
||||
gcc testtga.o -o testSO libimageSO.so -lm
|
||||
|
||||
essai3d: essai3d.o libimage.a Makefile
|
||||
gcc $(CFLAGS) essai3d.o -o essai3d libimage.a -lm
|
||||
|
||||
t_ascii: t_ascii.c libimage.a tthimage.h Makefile
|
||||
gcc $(CFLAGS) t_ascii.c -o t_ascii libimage.a -lm -g
|
||||
|
||||
t_png: t_png.c libimage.a tthimage.h Makefile
|
||||
gcc $(CFLAGS) t_png.c -o t_png libimage.a -lm -lpng -g
|
||||
|
||||
t_t16x24.o: t_t16x24.c tthimage.h Makefile
|
||||
gcc -c $(CFLAGS) t_t16x24.c
|
||||
t_t16x24: t_t16x24.o libimage.a Makefile
|
||||
gcc $(CFLAGS) t_t16x24.o -o t_t16x24 libimage.a -lm -g
|
||||
all16x24chars.tga: bigfont.txt t_t16x24 Makefile
|
||||
./t_t16x24
|
||||
all16x24chars.png: all16x24chars.tga
|
||||
convert all16x24chars.tga all16x24chars.png
|
||||
|
||||
testpcx: testpcx.c libimage.a Makefile
|
||||
gcc $(CFLAGS) -g testpcx.c -o testpcx libimage.a -lm
|
||||
testbmp: testbmp.c libimage.a Makefile
|
||||
gcc $(CFLAGS) -g testbmp.c -o testbmp libimage.a -lm
|
||||
|
||||
foo: foo.c Makefile libimage.a
|
||||
gcc $(CFLAGS) foo.c libimage.a -o foo -lm
|
||||
|
||||
fnt8to16: fnt8to16.c Makefile
|
||||
gcc -Wall fnt8to16.c -o fnt8to16
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
#
|
||||
# procedure d'installation en chantier...
|
||||
#
|
||||
|
||||
install_lib:
|
||||
install -d $(DESTDIR)/lib/
|
||||
install libimage.a $(DESTDIR)/lib/libimage.a
|
||||
install libimageSO.so $(DESTDIR)/lib/
|
||||
install -d $(DESTDIR)/include/
|
||||
install -m 0644 tthimage.h $(DESTDIR)/include/tthimage.h
|
||||
# install -m 0644 img77.fi $(DESTDIR)/include/img77.fi
|
||||
install -d $(SHARED_FILES)
|
||||
install -m 0644 libimage.fonte $(SHARED_FILES)/
|
||||
install -m 0644 8x8thin $(SHARED_FILES)/
|
||||
install -m 0644 16x24thin $(SHARED_FILES)/
|
||||
install -m 0644 bigfont.txt $(SHARED_FILES)/
|
||||
install -m 0644 neon.map $(SHARED_FILES)/neon.map
|
||||
install -m 0644 volcano.map $(SHARED_FILES)/volcano.map
|
||||
install -m 0644 primaires.map $(SHARED_FILES)/primaires.map
|
||||
|
||||
install_doc:
|
||||
install -m 0644 libimage.html $(HTML_DIR)/libimage.html
|
||||
install -m 0644 img-effets.html $(HTML_DIR)/img-effets.html
|
||||
install -m 0644 img-fichiers.html $(HTML_DIR)/img-fichiers.html
|
||||
install -m 0644 img-calculs.html $(HTML_DIR)/img-calculs.html
|
||||
install -m 0644 img-cadres.html $(HTML_DIR)/img-cadres.html
|
||||
install -m 0644 img-combine.html $(HTML_DIR)/img-combine.html
|
||||
install -m 0644 img-couleurs.html $(HTML_DIR)/img-couleurs.html
|
||||
install -m 0644 img-dither.html $(HTML_DIR)/img-dither.html
|
||||
install -m 0644 img-filtres.html $(HTML_DIR)/img-filtres.html
|
||||
install -m 0644 img-povhf15.html $(HTML_DIR)/img-povhf15.html
|
||||
install -m 0644 img-patterns.html $(HTML_DIR)/img-patterns.html
|
||||
install -m 0644 img-showdiff.html $(HTML_DIR)/img-showdiff.html
|
||||
install -m 0644 img-stereo.html $(HTML_DIR)/
|
||||
install -m 0644 image77.html $(HTML_DIR)/image77.html
|
||||
install -m 0644 img-devel.html $(HTML_DIR)/img-devel.html
|
||||
install -m 0644 img-texte.html $(HTML_DIR)/img-texte.html
|
||||
install -m 0644 img-alpha.html $(HTML_DIR)/img-alpha.html
|
||||
install -m 0644 img-operat.html $(HTML_DIR)/img-operat.html
|
||||
|
||||
install: install_lib
|
||||
@echo
|
||||
@echo "Use 'make install_doc' for installing doc in " $(HTML_DIR)
|
||||
@echo
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
TXTFILES=*.c *.h Makefile Doc/*.html *.txt \
|
||||
neon.map volcano.map primaires.map *.sh *.css *.fonte
|
||||
|
||||
TOTAR=$(TXTFILES) pov.tga 8x8thin machin.bin 16x24thin
|
||||
|
||||
lines: $(TXTFILES)
|
||||
@wc $^ | sort -g
|
||||
|
||||
tarball: $(TOTAR)
|
||||
date >> tarball
|
||||
ls $(TOTAR) | sed 's/^/LibImage\//' > MANIFEST
|
||||
( cd .. ; tar zcvf libimage.tar.gz `cat LibImage/MANIFEST` )
|
||||
|
||||
#----------- fini ------------------------------------------------
|
17
README.md
17
README.md
@ -1,23 +1,10 @@
|
||||
# libtthimage
|
||||
|
||||
Ce kluge a pour but de brotcher les images avec vigueur.
|
||||
|
||||
Du code né dans les années 1986 sur un Kenitec 286 sous msdos 4 ou 5,
|
||||
puis s'est un jour retrouvé dans un Linux (kernel 0.99) et qui végète
|
||||
qui s'est un jour retrouvé dans un Linux (kernel 0.99) et qui végète
|
||||
depuis ~2005. Il est venu le temps de le remettre en route.
|
||||
|
||||
## Construction
|
||||
Il a pour but de brotcher les images avec vigueur.
|
||||
|
||||
Tout va bien se passer.
|
||||
|
||||
## Utilisation
|
||||
|
||||
C'est là que ça se complique.
|
||||
|
||||
## Les outils
|
||||
|
||||
Et ça sert à quoi ?
|
||||
|
||||
## La suite ?
|
||||
|
||||
Bah, c'est l'heure du _gloumiam_, alors on passe à table.
|
||||
|
@ -6,15 +6,10 @@
|
||||
|
||||
include ../Paramakes.mk
|
||||
|
||||
DEPS = ../tthimage.h Makefile tga_outils.h
|
||||
DEPS = ../tthimage.h Makefile
|
||||
|
||||
all: genplot2 \
|
||||
tga_cadre tga_effects tga_filtres tga_remap tga_tools \
|
||||
tga_combine \
|
||||
tga_television tga_dither tga_applymap tga_makehf15 \
|
||||
tga_mires tga_incrust tga_pattern tga_equalize
|
||||
|
||||
# 'tga_info.c' do not compile yet
|
||||
all: tga_cadre tga_effects tga_filtres tga_tools \
|
||||
tga_television
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
@ -23,55 +18,20 @@ fonctions.o: fonctions.c $(DEPS)
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
genplot2: genplot2.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
||||
tga_applymap: tga_applymap.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_cadre: tga_cadre.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_combine: tga_combine.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_dither: tga_dither.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_effects: tga_effects.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_equalize: tga_equalize.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_filtres: tga_filtres.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_makehf15: tga_makehf15.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_mires: tga_mires.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_remap: tga_remap.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_television: tga_television.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_tools: tga_tools.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_incrust: tga_incrust.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
# tga_info: tga_info.c $(DEPS) fonctions.o
|
||||
# gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
tga_pattern: tga_pattern.c $(DEPS) fonctions.o
|
||||
gcc $(CFLAGS) $< ../libimage.a fonctions.o -lm -o $@
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
|
@ -90,8 +90,6 @@ int parse_int_param(char *str, int *pval, int k)
|
||||
long lfoo;
|
||||
int val;
|
||||
|
||||
if (k) fprintf(stderr, "%s: k %d\n", __func__, k);
|
||||
|
||||
val = (int)(lfoo = strtol(str, NULL, 0));
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
@ -410,8 +408,6 @@ int set_new_seed(int k)
|
||||
char *ptr;
|
||||
long seed;
|
||||
|
||||
if (k) fprintf(stderr, "%s: k %d\n", __func__, k);
|
||||
|
||||
if (NULL==(ptr=getenv("FIXED_SEED"))) {
|
||||
/* no fixed seed in context, doing semi-random */
|
||||
srand(getpid());
|
||||
|
180
Tools/genplot2.c
180
Tools/genplot2.c
@ -1,180 +0,0 @@
|
||||
/*
|
||||
Bon, c'est tres bien tout c,a mais il faudrait
|
||||
faire une page de man pour expliquer comment
|
||||
ce machin fonctionne...
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
#define XMIN 0
|
||||
#define YMIN 0
|
||||
#define XMAX 4096 /* constant from a 'dddd' */
|
||||
#define YMAX 4096 /* constant from a 'dddd' */
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
static Image_Desc *image;
|
||||
static RGB_map map;
|
||||
static int curX, curY;
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int initgr(int largeur, int hauteur)
|
||||
{
|
||||
int foo, r, v, b, dummy;
|
||||
|
||||
if ((image=Image_alloc(largeur, hauteur, 3))==NULL)
|
||||
{
|
||||
fprintf(stderr, "hu hu, 'man addswap' :)\n");
|
||||
exit(3);
|
||||
}
|
||||
|
||||
printf("\n\tinitgr %d %d\n", largeur, hauteur);
|
||||
for (foo=0; foo<8; foo++)
|
||||
{
|
||||
printf("\tPal(%d) = ", foo);
|
||||
r = foo & 1 ? 255 : 0;
|
||||
v = foo & 2 ? 255 : 0;
|
||||
b = foo & 4 ? 255 : 0;
|
||||
printf("%02X %02X %02X\n", r, v, b);
|
||||
map.red[foo] = r;
|
||||
map.green[foo] = v;
|
||||
map.blue[foo] = b;
|
||||
}
|
||||
map.nbre = 8;
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int move(int x, int y)
|
||||
{
|
||||
#if DEBUG_LEVEL
|
||||
printf("\tMOVE %5d %5d\n", x, y);
|
||||
#endif
|
||||
curX = x; curY = y;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int draw(int x, int y, int color)
|
||||
{
|
||||
RGBA rgba;
|
||||
int idx;
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
printf("\tDRAW %5d %5d to %5d %5d\n", curX, curY, x, y);
|
||||
#endif
|
||||
|
||||
idx = color % 8;
|
||||
if (idx != color) {
|
||||
fprintf(stderr, "%s %s : color %d out of range\n",
|
||||
__FILE__, __func__, color);
|
||||
}
|
||||
rgba.r = map.red[color];
|
||||
rgba.g = map.green[color];
|
||||
rgba.b = map.blue[color];
|
||||
Image_draw_line(image, curX, curY, x, y, &rgba);
|
||||
curX = x; curY = y;
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int endgr(char *filename)
|
||||
{
|
||||
|
||||
fprintf(stderr, "saving '%s'\n", filename);
|
||||
Image_TGA_save(filename, image, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *filename, *image;
|
||||
FILE *fp;
|
||||
double x, y, xmin, ymin, xmax, ymax;
|
||||
double fx, fy, f, X, Y;
|
||||
double xC, yC, XC, YC, c1, c2;
|
||||
|
||||
int v, nbp;
|
||||
|
||||
/*---------- processing command line arguments */
|
||||
|
||||
if (argc<=1) filename = "a.scratch";
|
||||
else filename = argv[1];
|
||||
|
||||
if (argc<=2) image = "image.tga";
|
||||
else image = argv[2];
|
||||
|
||||
fprintf(stderr, "*** Genplot2 v 1.0.4 [%s] (dwtfywl) 1995,2010 TontonTh \n",
|
||||
TGA_OUTILS_VERSION);
|
||||
|
||||
/*----------- giving to the yuser some useless informations --- */
|
||||
|
||||
fprintf(stderr, "hardcoded picsize : %d %d\n", XMAX, YMAX);
|
||||
|
||||
/*----------- opening input file and getting MIN and MAX values */
|
||||
|
||||
if ((fp = fopen(filename, "r"))==NULL)
|
||||
{
|
||||
perror("fichier d'entree");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
nbp = 0;
|
||||
xmin = 9999999; xmax = -9999999;
|
||||
ymin = 9999999; ymax = -9999999;
|
||||
while ( fscanf(fp, "%lf %lf %d", &x, &y, &v) == 3 )
|
||||
{
|
||||
nbp++;
|
||||
|
||||
if (x > xmax) xmax = x;
|
||||
if (x < xmin) xmin = x;
|
||||
|
||||
if (y > ymax) ymax = y;
|
||||
if (y < ymin) ymin = y;
|
||||
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
if (nbp == 0)
|
||||
{
|
||||
fprintf(stderr, "omg, I'v found _ZERO_ points for plotting...\n");
|
||||
exit(2);
|
||||
}
|
||||
|
||||
fprintf(stderr, "Genplot2: found %d points\n", nbp);
|
||||
|
||||
/*---------- computing coefficients (temporary hack !-) */
|
||||
|
||||
fx = (XMAX-XMIN-1)/(xmax-xmin);
|
||||
fy = (YMAX-YMIN-1)/(ymax-ymin);
|
||||
fprintf(stderr, "\nfc = %12f fy = %12f\n", fx, fy);
|
||||
f = (fx<fy?fx:fy);
|
||||
|
||||
xC = 0.5*(xmin+xmax); yC = 0.5*(ymin+ymax);
|
||||
XC = 0.5*(XMIN+XMAX); YC = 0.5*(YMIN+YMAX);
|
||||
|
||||
c1 = XC-f*xC; c2 = YC-f*yC;
|
||||
fprintf(stderr, "c1 = %12f c2 = %12f\n", c1, c2);
|
||||
|
||||
/*------------- and now, plotting the image ! */
|
||||
|
||||
initgr(XMAX, YMAX);
|
||||
|
||||
fp = fopen(filename, "r");
|
||||
puts("");
|
||||
while ( fscanf(fp, "%lf %lf %d", &x, &y, &v) == 3 )
|
||||
{
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "%12f %12f %d\n", x, y, v);
|
||||
#endif
|
||||
X = f*x+c1; Y = f*y+c2;
|
||||
|
||||
if (v < 0) move(X, Y);
|
||||
else draw(X, Y, v);
|
||||
}
|
||||
|
||||
endgr(image);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,92 +0,0 @@
|
||||
/*
|
||||
WARNING! this prog is bogus!
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* tga_applymap v 0.0.14 [%s] (dwtfywl) Krabulator 1910\n",
|
||||
TGA_OUTILS_VERSION);
|
||||
fprintf(stderr, "Usage: tga_applymap M src.tga color.map dst.tga\n");
|
||||
fprintf(stderr, " M is 1 or 2\n");
|
||||
Image_print_version(0);
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *src, *dst;
|
||||
int foo;
|
||||
RGB_map map;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if (argc==2 && !strcmp(argv[1], "-?")) usage(1);
|
||||
|
||||
if (argc != 5) usage(0);
|
||||
|
||||
if ( (src=Image_TGA_alloc_load(argv[2])) == NULL )
|
||||
{
|
||||
fprintf(stderr, "can't load '%s'\n", argv[2]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ( (foo=Image_load_color_Map(argv[3], "map", &map)) )
|
||||
{
|
||||
fprintf(stderr, "%s: %s: err%d %s\n", argv[0], argv[3],
|
||||
foo, Image_err2str(foo));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (must_be_verbose())
|
||||
{
|
||||
fprintf(stderr, "il y a %d couleurs dans la palette '%s'\n",
|
||||
map.nbre, argv[3]);
|
||||
}
|
||||
|
||||
if ( (dst=Image_clone(src, 0))==NULL )
|
||||
{
|
||||
fprintf(stderr, "can't clone %p, exiting...\n", src);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
/* ----------- */
|
||||
switch (argv[1][0])
|
||||
{
|
||||
default:
|
||||
case '1':
|
||||
foo=Image_apply_Map(src, dst, &map);
|
||||
break;
|
||||
case '2':
|
||||
foo=Image_gray_Map(src, dst, &map);
|
||||
break;
|
||||
case '3':
|
||||
fprintf(stderr, "Not implemented\n");
|
||||
exit(5);
|
||||
}
|
||||
/* ----------- */
|
||||
|
||||
if (foo)
|
||||
{
|
||||
fprintf(stderr, "%s: apply map: erreur %d: %s\n",
|
||||
argv[0], foo, Image_err2str(foo));
|
||||
}
|
||||
|
||||
foo = Image_TGA_save(argv[4], dst, 0);
|
||||
if (foo)
|
||||
{
|
||||
fprintf(stderr, "%s: TGA_save: err #%d\n\t\t %s\n",
|
||||
argv[0], foo, Image_err2str(foo));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fprintf(stderr, "apply map ok\n");
|
||||
exit (0);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -69,7 +69,7 @@ mot_clef mots_clef[] =
|
||||
{ "burp0", CDR_BURP0, "iii", "cadre burp 0" },
|
||||
{ "burp1", CDR_BURP1, "ii", "cadre burp 1" },
|
||||
{ "burp2", CDR_BURP2, "iiii", "inversion composantes" },
|
||||
{ "burp3", CDR_BURP3, "iiii", "en chantier..." },
|
||||
{ "burp3", CDR_BURP3, "", "en chantier..." },
|
||||
{ "soft1", CDR_SOFT_1, "", "en chantier aussi" },
|
||||
{ "x", CDR_PIXX, "ii", NULL },
|
||||
{ "pixx", CDR_PIXX, "ii", "pixx me !" },
|
||||
@ -116,7 +116,7 @@ exit(5);
|
||||
* argv[1] type cadre
|
||||
* argv[2] image source
|
||||
* argv[3] image destination
|
||||
* argv[...] parametres
|
||||
* argv[...] paramètres
|
||||
*/
|
||||
#define FIRST_PARAM 4
|
||||
|
||||
@ -143,7 +143,7 @@ if (strlen(argv[1])==1)
|
||||
argv[0], argv[1]);
|
||||
|
||||
|
||||
/* recherche du type de cadre demande */
|
||||
/* recherche du type de cadre demandé */
|
||||
idx = cherche_mot_clef(argv[2], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
@ -161,7 +161,7 @@ if ( (argc-nbargs) != FIRST_PARAM )
|
||||
exit(5);
|
||||
}
|
||||
/*
|
||||
* decodage des parametres
|
||||
* décodage des paramètres
|
||||
*/
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, FIRST_PARAM);
|
||||
#if DEBUG_LEVEL
|
||||
@ -178,7 +178,7 @@ if ( (src=Image_TGA_alloc_load(argv[1])) == NULL )
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* 26 Jan 2002: en fait, est-il necessaire de cloner l'image ? */
|
||||
/* 26 Jan 2002: en fait, est-il nécessaire de cloner l'image ? */
|
||||
if ( (dst=Image_clone(src, 1)) == NULL )
|
||||
{
|
||||
fprintf(stderr, "tga_cadre: can't clone %p\n", src);
|
||||
|
@ -1,306 +0,0 @@
|
||||
/*
|
||||
un outil pour combiner deux images TGA
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
|
||||
#define MIX_SEUILS 10
|
||||
#define MIX_GRAY 11
|
||||
#define MIX_RGB 12
|
||||
#define MIX_LINES 20
|
||||
#define MIX_COLUMNS 21
|
||||
#define MIX_CHECKER 22
|
||||
#define MIX_RANDOM 23
|
||||
#define MIX_RNDRGB 24
|
||||
#define MIX_POWER 25
|
||||
#define MIX_POWERM 26 /* new 14 mars 2014 */
|
||||
#define MIX_XOR 27 /* new 25 sept 2018 */
|
||||
|
||||
#define MIX_DIAGO 40
|
||||
|
||||
#define MIX_HSPLIT0 50 /* new 29 nov 2013 */
|
||||
#define MIX_VSPLIT0 51 /* new 29 nov 2013 */
|
||||
|
||||
#define MIX_MINMAX 60
|
||||
#define MIX_STEREO 70
|
||||
#define MIX_STEREOK 71
|
||||
#define MIX_STEREO3 73
|
||||
#define MIX_WAOU 80
|
||||
#define MIX_WAUO 81
|
||||
#define MIX_CIRCLE0 84
|
||||
#define MIX_HDEG 100
|
||||
#define MIX_VDEG 101
|
||||
#define MIX_PROTO 110
|
||||
#define MIX_IFNOTBLACK 200
|
||||
|
||||
static char no_help[] = "no help";
|
||||
|
||||
static char h_mix_gray[] = "param: 1..10000";
|
||||
static char h_mix_rgb[] = "params: 3*1..10000";
|
||||
static char h_lico[] = "taille offset 0";
|
||||
static char h_random[] = "param: 1..10000";
|
||||
static char h_minmax[] = "0:min 1:max";
|
||||
static char h_waou[] = "ubyte ubyte ubyte bit";
|
||||
static char h_wauo[] = "must be 0";
|
||||
static char h_circle0[] = "must be 0";
|
||||
static char h_deg[] = "0 or 1";
|
||||
|
||||
mot_clef les_types[] =
|
||||
{
|
||||
{ "mixer", MIX_GRAY, "i", no_help },
|
||||
{ "mix_gray", MIX_GRAY, "i", h_mix_gray },
|
||||
{ "mix_rgb", MIX_RGB, "iii", h_mix_rgb },
|
||||
{ "seuils", MIX_SEUILS, "iii", "P in [0..255]" },
|
||||
|
||||
{ "lines", MIX_LINES, "iii", h_lico },
|
||||
{ "columns", MIX_COLUMNS, "iii", h_lico },
|
||||
{ "checker", MIX_CHECKER, "iiiii", no_help },
|
||||
{ "random", MIX_RANDOM, "i", h_random },
|
||||
{ "rndrgb", MIX_RNDRGB, "i", h_random },
|
||||
|
||||
{ "diago", MIX_DIAGO, "fii", no_help },
|
||||
{ "diagonale", MIX_DIAGO, "fii", no_help },
|
||||
|
||||
{ "hsplit", MIX_HSPLIT0, "ii", "position 0" },
|
||||
{ "vsplit", MIX_VSPLIT0, "ii", "P in pixels" },
|
||||
|
||||
{ "minmax", MIX_MINMAX, "i", h_minmax },
|
||||
{ "power", MIX_POWER, "", "" },
|
||||
{ "powerm", MIX_POWERM, "", "" },
|
||||
{ "xor", MIX_XOR, "", "" },
|
||||
{ "waou", MIX_WAOU, "iiii", h_waou },
|
||||
{ "wauo", MIX_WAUO, "i", h_wauo },
|
||||
{ "circle0", MIX_CIRCLE0, "i", h_circle0 },
|
||||
|
||||
{ "hdeg", MIX_HDEG, "f", h_deg },
|
||||
{ "vdeg", MIX_VDEG, "f", h_deg },
|
||||
{ "ifnotblack", MIX_IFNOTBLACK, "", "new mars 2007" },
|
||||
{ "stereo", MIX_STEREO, "", "rouge/vert" },
|
||||
{ "stereok", MIX_STEREOK, "iii", "rouge/bleu coefs" },
|
||||
{ "proto", MIX_PROTO, "", "prototype" },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* Tga Combine v 0.1.43 [%s] %s\n",
|
||||
TGA_OUTILS_VERSION, TGA_OUTILS_COPYLEFT);
|
||||
if (flag)
|
||||
fprintf(stderr, "* compiled : " __DATE__ " *\n");
|
||||
|
||||
Image_print_version(0);
|
||||
fputs("Usage:\n", stderr);
|
||||
fputs("\ttga_combine s1.tga s2.tga MODE d.tga [PARAMS]\n", stderr);
|
||||
fputs("\n", stderr);
|
||||
if (flag) liste_mots_clefs(les_types, 0);
|
||||
exit(0);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int combine_proto(Image_Desc *sa, Image_Desc *sb, Image_Desc *dest)
|
||||
{
|
||||
|
||||
fprintf(stderr, "%p + %p -> %p\n", sa, sb, dest);
|
||||
|
||||
return 42;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* arg[1] s1.tga
|
||||
* arg[2] s2.tga
|
||||
* arg[3] mode
|
||||
* arg[4] dst.tga
|
||||
*/
|
||||
#define FIRST_PARAM 5
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *s1, *s2, *d;
|
||||
int foo;
|
||||
int idx, mode, nbarg;
|
||||
char *dstname;
|
||||
int kr, kg, kb;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if (argc==2 && !strcmp(argv[1], "list")) usage(1);
|
||||
|
||||
if (argc < 5 ) usage(0);
|
||||
|
||||
if ((idx=cherche_mot_clef(argv[3], les_types, &mode, &nbarg)) == -1)
|
||||
{
|
||||
fprintf(stderr, "mode '%s' inconnu\n", argv[3]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "%s --> idx=%d, mode=%d, %d args\n", argv[3], idx, mode, nbarg);
|
||||
fprintf(stderr, "argc = %d\n", argc);
|
||||
#endif
|
||||
if (mode == -1)
|
||||
{
|
||||
fprintf(stderr, "mode '%s' inconnu\n", argv[3]);
|
||||
exit(5);
|
||||
}
|
||||
/* analyse des paramètres */
|
||||
foo = parse_parametres(argc, argv, les_types[idx].ptypes, FIRST_PARAM);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "parse params -> %d\n", foo);
|
||||
#endif
|
||||
|
||||
if ((s1 = Image_TGA_alloc_load(argv[1]))==NULL)
|
||||
{
|
||||
fprintf(stderr, "tga_combine: can't load image #1\n");
|
||||
exit(5);
|
||||
}
|
||||
if (must_be_verbose())
|
||||
{
|
||||
fprintf(stderr, "%s loaded at %p\n", argv[1], s1);
|
||||
}
|
||||
|
||||
if ((s2 = Image_TGA_alloc_load(argv[2]))==NULL)
|
||||
{
|
||||
fprintf(stderr, "tga_combine: can't load image #2\n");
|
||||
exit(5);
|
||||
}
|
||||
if (must_be_verbose())
|
||||
{
|
||||
fprintf(stderr, "%s loaded at %p\n", argv[2], s2);
|
||||
}
|
||||
|
||||
if ((d = Image_clone(s2, 0))==NULL)
|
||||
{
|
||||
fprintf(stderr, "tga_combine: erreur clonage destination\n");
|
||||
exit(5);
|
||||
}
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case MIX_SEUILS:
|
||||
foo = Image_combine_seuils(s1, s2, d, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case MIX_GRAY:
|
||||
foo = Image_mix(s1, s2, d, GIP(0));
|
||||
break;
|
||||
|
||||
case MIX_RGB:
|
||||
foo = Image_mix_rgb(s1, s2, d, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case MIX_LINES:
|
||||
foo = Image_combine_lines(s1, s2, d, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case MIX_COLUMNS:
|
||||
foo = Image_combine_columns(s1, s2, d, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case MIX_CHECKER:
|
||||
foo = Image_combine_checker(s1, s2, d, GIP(0), GIP(1), GIP(2),
|
||||
GIP(3), GIP(4));
|
||||
break;
|
||||
|
||||
case MIX_RANDOM:
|
||||
foo = Image_combine_random_point(s1, s2, d, GIP(0));
|
||||
break;
|
||||
|
||||
case MIX_RNDRGB:
|
||||
fprintf(stderr, "SEGFAULT, COREDUMP, what else ?\n");
|
||||
foo = Image_combine_random_rgb(s1, s2, d, GIP(0));
|
||||
break;
|
||||
|
||||
case MIX_DIAGO:
|
||||
/* oui, bon, a quoi servent les parametres ? */
|
||||
/* 17sept2009: le 0 est le sens de la coupure,
|
||||
et les 1 & 2 sont 'not used' */
|
||||
foo = Image_combine_diagonale(s1, s2, d,
|
||||
GFP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case MIX_HSPLIT0:
|
||||
foo = Image_combine_Hsplit(s1, s2, d, GIP(0), GIP(1));
|
||||
break;
|
||||
case MIX_VSPLIT0:
|
||||
foo = Image_combine_Vsplit(s1, s2, d, GIP(0), GIP(1));
|
||||
break;
|
||||
|
||||
case MIX_MINMAX:
|
||||
foo = Image_combine_minmax(s1, s2, d, GIP(0));
|
||||
break;
|
||||
|
||||
case MIX_POWER:
|
||||
foo = Image_combine_power(s1, s2, d);
|
||||
fprintf(stderr, "combine power -> %d\n", foo);
|
||||
break;
|
||||
case MIX_POWERM:
|
||||
foo = Image_combine_power_m(s1, s2, d);
|
||||
fprintf(stderr, "combine power_m -> %d\n", foo);
|
||||
break;
|
||||
|
||||
case MIX_WAOU:
|
||||
foo = Image_combine_waou(s1,s2,d,GIP(0),GIP(1),GIP(2),GIP(3));
|
||||
break;
|
||||
|
||||
case MIX_WAUO:
|
||||
foo = Image_combine_wauo(s1, s2, d, GIP(0));
|
||||
break;
|
||||
|
||||
case MIX_CIRCLE0:
|
||||
foo = Image_combine_cercle_flou(s1, s2, d, 0);
|
||||
break;
|
||||
|
||||
/* FIXME 16 sept 2009 : je pense que hdeg et vdeg sont inverses */
|
||||
case MIX_HDEG:
|
||||
foo = Image_combine_Hdegrade(s1, s2, d, GFP(0));
|
||||
break;
|
||||
|
||||
case MIX_VDEG:
|
||||
foo = Image_combine_Vdegrade(s1, s2, d, GFP(0));
|
||||
break;
|
||||
|
||||
case MIX_IFNOTBLACK:
|
||||
foo = Image_combine_if_not_black(s1, s2, d);
|
||||
break;
|
||||
|
||||
case MIX_XOR:
|
||||
foo = Image_XOR(s1, s2, d, 1);
|
||||
if (666==foo) fputs("#####################", stderr);
|
||||
break;
|
||||
|
||||
case MIX_STEREO:
|
||||
foo = Image_combine_stereo_0(s1, s2, d);
|
||||
break;
|
||||
|
||||
case MIX_STEREOK:
|
||||
kr = GIP(0);
|
||||
kg = GIP(1);
|
||||
kb = GIP(2);
|
||||
foo = Image_combine_stereo_1(s1, s2, d, kr, kg, kb);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "mode operation %d non implemente\n", mode);
|
||||
exit(1);
|
||||
break;
|
||||
}
|
||||
|
||||
if (foo)
|
||||
Image_print_error("Combination", foo);
|
||||
|
||||
dstname = argv[4];
|
||||
|
||||
foo = Image_TGA_save(dstname, d, 0);
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "image '%s' ecrite (%d)\n", dstname, foo);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -1,145 +0,0 @@
|
||||
/*
|
||||
----------------------------------------------
|
||||
utilitaire pour ditherizer (uh?) une image
|
||||
----------------------------------------------
|
||||
http://krabulator.free.fr/devel/libimage.html
|
||||
----------------------------------------------
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
#define DI_2X2 2
|
||||
#define DI_3X3_0 11
|
||||
#define DI_3X3_1 12
|
||||
#define DI_BAYER0 16
|
||||
#define DI_ATKINSON 18
|
||||
#define DI_CRUDE 30
|
||||
#define DI_DBLTR 38
|
||||
#define DI_ERROR 45
|
||||
#define DI_RANDOM 60
|
||||
#define DI_BYR8RND 70
|
||||
#define DI_XPER 100
|
||||
|
||||
mot_clef mots_clef[] =
|
||||
{
|
||||
{ "2x2", DI_2X2, "", "not working" },
|
||||
{ "3x3_0", DI_3X3_0, "", "" },
|
||||
{ "3x3_1", DI_3X3_1, "", "" },
|
||||
{ "bayer0", DI_BAYER0, "", "" },
|
||||
{ "atkinson", DI_ATKINSON, "i", "mmmm ?" },
|
||||
{ "crude", DI_CRUDE, "i", "" },
|
||||
{ "dbltresh", DI_DBLTR, "ii", "hi & low tresholds" },
|
||||
{ "error", DI_ERROR, "", "simple err diffusion" },
|
||||
{ "random", DI_RANDOM, "i", "random treshold" },
|
||||
{ "byr8rnd", DI_BYR8RND, "ii", "new 29 nov 2013" },
|
||||
{ "xper", DI_XPER, "i", "param: 1..254" },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* tga_dither v 0.0.26 [%s] (dwtfywl 2022) tTh\n",
|
||||
TGA_OUTILS_VERSION);
|
||||
fprintf(stderr, "usage:\n\ttga_dither avant.tga mode avant.tga [params]\n");
|
||||
if (flag)
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
else
|
||||
Image_print_version(0);
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *src, *dst;
|
||||
int foo;
|
||||
int commande, nbargs, idx;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if ( argc==2 && !strcmp(argv[1], "list") ) usage(1);
|
||||
if ( argc < 4) usage(0);
|
||||
|
||||
idx = cherche_mot_clef(argv[2], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
fprintf(stderr, "tga_dither: keyword %s unknow.\n", argv[2]);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "idx %d commande %d nbargs %d argc %d\n",
|
||||
idx, commande, nbargs, argc);
|
||||
#endif
|
||||
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, 4);
|
||||
|
||||
if ( (src=Image_TGA_alloc_load(argv[1])) == NULL )
|
||||
{
|
||||
fprintf(stderr, "tga_dither: err load %s\n", argv[1]);
|
||||
exit(5);
|
||||
}
|
||||
if ( (dst=Image_clone(src, 1)) == NULL )
|
||||
{
|
||||
fprintf(stderr, "no mem for image cloning\n");
|
||||
exit(5);
|
||||
}
|
||||
|
||||
switch (commande)
|
||||
{
|
||||
case DI_2X2:
|
||||
foo = Image_dither_2x2(src, dst, 255);
|
||||
break;
|
||||
case DI_3X3_0:
|
||||
foo = Image_dither_3x3_0(src, dst, 127);
|
||||
break;
|
||||
case DI_3X3_1:
|
||||
foo = Image_dither_3x3_1(src, dst, 255);
|
||||
break;
|
||||
case DI_BAYER0:
|
||||
foo = Image_dither_Bayer_0(src, dst, 255);
|
||||
break;
|
||||
case DI_ATKINSON:
|
||||
foo = Image_dither_atkinson(src, dst, 255);
|
||||
break;
|
||||
case DI_CRUDE:
|
||||
foo = Image_dither_crude(src, dst, GIP(0));
|
||||
break;
|
||||
case DI_DBLTR:
|
||||
foo = Image_dither_double_seuil(src, dst, GIP(0), GIP(1), 255);
|
||||
break;
|
||||
case DI_ERROR:
|
||||
foo = Image_dither_simple_error(src, dst, 255);
|
||||
break;
|
||||
case DI_RANDOM:
|
||||
foo = Image_dither_seuil_random(src, dst, 255);
|
||||
break;
|
||||
case DI_BYR8RND:
|
||||
srand(getpid());
|
||||
foo = Image_dither_bayer8x8rnd(src, dst, GIP(0), GIP(1));
|
||||
break;
|
||||
case DI_XPER:
|
||||
foo = Image_dither_3x3_1(src, dst, GIP(0));
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "dithering method not implemented\n");
|
||||
foo=-1;
|
||||
break;
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
if (foo)
|
||||
fprintf(stderr, "dither %d retour = %d, %s\n", commande,
|
||||
foo, Image_err2str(foo));
|
||||
#endif
|
||||
|
||||
foo = Image_TGA_save(argv[3], dst, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -1,124 +0,0 @@
|
||||
/*
|
||||
----------------------------------------------
|
||||
utilitaire pour egalizer (uh?) une image
|
||||
----------------------------------------------
|
||||
http://la.buvette.org/devel/libimage/
|
||||
----------------------------------------------
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
#define EQ_STD 4
|
||||
#define EQ_GRAY 8
|
||||
#define EQ_2X2 12
|
||||
#define EQ_LUMIN 14
|
||||
#define EQ_SQUARE 16
|
||||
#define EQ_SQROOT 17
|
||||
#define EQ_GAMMA 20
|
||||
mot_clef mots_clef[] =
|
||||
{
|
||||
{ "std", EQ_STD, "", "standard method" },
|
||||
{ "rgb", EQ_STD, "", "same as 'std'" },
|
||||
{ "gray", EQ_GRAY, "", "gray based" },
|
||||
{ "2x2", EQ_2X2, "", "2x2 matrix" },
|
||||
{ "lumin", EQ_LUMIN, "i", "param : ident is 256" },
|
||||
{ "gamma", EQ_GAMMA, "d", "not implemented" },
|
||||
{ "square", EQ_SQUARE, "", "pix**2" },
|
||||
{ "sqroot", EQ_SQROOT, "", "sqr(pix)" },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage()
|
||||
{
|
||||
fprintf(stderr, "* tga_equalize v 0.0.20 [%s] (dwtfywl) tonton Th\n",
|
||||
TGA_OUTILS_VERSION);
|
||||
fprintf(stderr, " compiled %s at %s\n", __DATE__, __TIME__);
|
||||
fprintf(stderr, "usage:\n\ttga_equalize avant.tga mode apres.tga [params]\n");
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *src, *dst;
|
||||
int foo;
|
||||
int commande, nbargs, idx;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
if (argc < 4) usage();
|
||||
|
||||
idx = cherche_mot_clef(argv[2], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
fprintf(stderr, "tga_equalize: mot-clef %s inconnu...\n", argv[2]);
|
||||
exit(5);
|
||||
}
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "idx %d commande %d nbargs %d argc %d\n",
|
||||
idx, commande, nbargs, argc);
|
||||
#endif
|
||||
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, 4);
|
||||
|
||||
if ( (src=Image_TGA_alloc_load(argv[1])) == NULL )
|
||||
{
|
||||
fprintf(stderr, "tga_equalize: err load %s\n", argv[1]);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
if ( (dst=Image_clone(src, 0)) == NULL )
|
||||
{
|
||||
fprintf(stderr, "no mem for image cloning\n");
|
||||
exit(5);
|
||||
}
|
||||
|
||||
switch (commande)
|
||||
{
|
||||
case EQ_STD:
|
||||
foo = Image_egalise_RGB(src, dst, 0);
|
||||
break;
|
||||
|
||||
case EQ_GRAY:
|
||||
foo = Image_egalise_mono_0(src, dst, 0);
|
||||
break;
|
||||
|
||||
case EQ_2X2:
|
||||
foo = Image_2x2_contrast(src, dst);
|
||||
break;
|
||||
|
||||
case EQ_LUMIN:
|
||||
foo = Image_luminance(src, dst, GIP(0));
|
||||
break;
|
||||
|
||||
case EQ_SQUARE:
|
||||
foo = Image_pix_square(src, dst, 0);
|
||||
break;
|
||||
|
||||
case EQ_SQROOT:
|
||||
foo = Image_pix_sqroot(src, dst, 0);
|
||||
break;
|
||||
|
||||
case EQ_GAMMA:
|
||||
fprintf(stderr, "no gamma func in %d\n", getpid());
|
||||
foo = FULL_NUCKED;
|
||||
break;
|
||||
|
||||
default:
|
||||
foo=-1;
|
||||
break;
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
if (foo)
|
||||
fprintf(stderr, "retour = %d, %s\n", foo, Image_err2str(foo));
|
||||
#endif
|
||||
|
||||
foo = Image_TGA_save(argv[3], dst, 0);
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -1,143 +0,0 @@
|
||||
/*
|
||||
# # # #### ##### # # #### ##### ## ##### # #### # #
|
||||
# ## # # # # # # # # # # # # # # # ## #
|
||||
# # # # # # # # # #### # # # # # # # # # #
|
||||
# # # # # ##### # # # # ###### # # # # # # #
|
||||
# # ## # # # # # # # # # # # # # # # # ##
|
||||
# # # #### # # #### #### # # # # # #### # #
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
|
||||
#define ICRU_POKE 2
|
||||
#define ICRU_POKEMIX 3
|
||||
#define ICRU_POKEALPHA 4
|
||||
#define ICRU_POKESCALE 10
|
||||
#define ICRU_RGBXOR 20
|
||||
#define ICRU_RECT 30
|
||||
#define ICRU_RECT2 32
|
||||
|
||||
mot_clef mots_clef[] =
|
||||
{
|
||||
{ "poke", ICRU_POKE, "ii", "poke it hardly" },
|
||||
{ "pokemix", ICRU_POKEMIX, "iii", "ponderate it" },
|
||||
{ "pokealpha", ICRU_POKEALPHA, "ii", "use the alpha channel" },
|
||||
{ "pokescale", ICRU_POKESCALE, "ii%", "scale before poking" },
|
||||
{ "rgbxor", ICRU_RGBXOR, "ii", "exclusive OR of poked pix" },
|
||||
{ "rect", ICRU_RECT, "iir", "only a part of 'what'" },
|
||||
{ "rect2", ICRU_RECT2, "iir", "only a part of 'what'" },
|
||||
{ NULL, 0, "WTF", NULL },
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* TGA incrustator v 0.1.3 [%s] %s \n",
|
||||
TGA_OUTILS_VERSION, TGA_OUTILS_COPYLEFT);
|
||||
fprintf(stderr, " compiled %s at %s\n", __DATE__, __TIME__);
|
||||
|
||||
fprintf(stderr, "usage:\n\ttga_incrust orig insert mode out\n");
|
||||
|
||||
if (flag) {
|
||||
Image_print_version(0);
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
}
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* argv[1] image originale
|
||||
* argv[2] image a incruster
|
||||
* argv[3] type d'incrustation
|
||||
* argv[4] image destination
|
||||
*/
|
||||
#define FIRST_PARAM 5
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *where, *what;
|
||||
int foo, idx;
|
||||
int xpos, ypos;
|
||||
int par[NB_PARAMS], nb_int_par;
|
||||
int commande, nbargs;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if (argc==2 && !strcmp(argv[1], "-?")) usage(0);
|
||||
if (argc==2 && !strcmp(argv[1], "list")) usage(1);
|
||||
if (argc < 4) usage(1);
|
||||
|
||||
if (must_be_verbose())
|
||||
{
|
||||
fprintf(stderr, "********************************\n");
|
||||
fprintf(stderr, "* EXPERIMENTAL CORE DUMPER *\n");
|
||||
fprintf(stderr, "********************************\n");
|
||||
}
|
||||
|
||||
idx = cherche_mot_clef(argv[3], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
fprintf(stderr, "tga_incrust: mot-clef '%s' inconnu...\n", argv[3]);
|
||||
exit (5);
|
||||
}
|
||||
if ( (argc-nbargs) != FIRST_PARAM )
|
||||
{
|
||||
fprintf(stderr, "%s: bad number of parameters\n", argv[0]);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "argc=%d nbargs=%d FIRST_PARAM=%d\n",
|
||||
argc, nbargs, FIRST_PARAM);
|
||||
#endif
|
||||
exit(5);
|
||||
}
|
||||
|
||||
/* analyse des parametres */
|
||||
idx = 0;
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, FIRST_PARAM);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "parse params -> %d\n", foo);
|
||||
#endif
|
||||
|
||||
if (NULL==(where=Image_TGA_alloc_load(argv[1])))
|
||||
{
|
||||
fprintf(stderr, "can't load %s\n", argv[1]);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
if (NULL==(what=Image_TGA_alloc_load(argv[2])))
|
||||
{
|
||||
fprintf(stderr, "can't load %s\n", argv[2]);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
switch (commande)
|
||||
{
|
||||
case ICRU_POKE:
|
||||
xpos = GIP(0); ypos = GIP(1);
|
||||
foo = Image_overlay(what, where, xpos, ypos);
|
||||
if (foo) fprintf(stderr, "overlay -> %d\n", foo);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "%d command not implemented\n", commande);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
Image_DeAllocate(what); free(what);
|
||||
|
||||
foo = Image_TGA_save(argv[4], where, 0);
|
||||
if (foo)
|
||||
{
|
||||
fprintf(stderr, "save -> %d\n", foo);
|
||||
}
|
||||
Image_DeAllocate(where); free(where);
|
||||
|
||||
return 0;
|
||||
}
|
@ -1,80 +0,0 @@
|
||||
/*
|
||||
ce programme n'est pas pres pour le 'primtime'
|
||||
il manque une gestion correcte des arguments.
|
||||
voir aussi 'tga_tools.c'
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "../tthimage.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Tga_file_header head;
|
||||
FILE *fp;
|
||||
char *ptr;
|
||||
char comment[257];
|
||||
int foo;
|
||||
|
||||
if (argc != 2)
|
||||
{
|
||||
fprintf(stderr, "il manque le nom du fichier TGA\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ((fp=fopen(argv[1], "rb")) == NULL)
|
||||
{
|
||||
fprintf(stderr, "erreur ouverture fichier %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fread(&head, 1, sizeof(head), fp);
|
||||
if (head.text_size)
|
||||
{
|
||||
fread(comment, 1, head.text_size, fp);
|
||||
comment[head.text_size] = '\0';
|
||||
}
|
||||
fclose(fp);
|
||||
|
||||
printf("file name %s\n", argv[1]);
|
||||
|
||||
if (head.text_size)
|
||||
{
|
||||
printf("comment size %d\n", head.text_size);
|
||||
puts(comment);
|
||||
}
|
||||
else puts("no comment.");
|
||||
|
||||
printf("is color map ? %d\n", head.is_color_map);
|
||||
switch (head.type)
|
||||
{
|
||||
case 1: ptr = "8-bit palette"; break;
|
||||
case 2: ptr = "RGB"; break;
|
||||
case 3: ptr = "Gray"; break;
|
||||
case 10: ptr = "rle/rvb"; break;
|
||||
case 11: ptr = "grey/rle"; break; /* !!! a verifier !!! */
|
||||
default: ptr = "???"; break;
|
||||
}
|
||||
printf("type %d %s\n", head.type, ptr);
|
||||
printf("map start %d\n", head.map_start);
|
||||
printf("map length %d\n", head.map_length);
|
||||
printf("map bits %d\n", head.map_bits);
|
||||
printf("x start %d\n", head.x_start);
|
||||
printf("y start %d\n", head.y_start);
|
||||
printf("width %d\n", head.width);
|
||||
printf("height %d\n", head.height);
|
||||
printf("nbr of bits %d\n", head.bits);
|
||||
|
||||
switch (head.flags>>4)
|
||||
{
|
||||
case 0: ptr = "NON"; break;
|
||||
case 1: ptr = "droite-gauche"; break;
|
||||
case 2: ptr = "haut-bas"; break;
|
||||
case 3: ptr = "les deux"; break;
|
||||
default: ptr = "???"; break;
|
||||
}
|
||||
|
||||
printf("flags %02x flip: %s\n", head.flags, ptr);
|
||||
return 0;
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
convert a TGA image to a POVRAY height_field
|
||||
----------------------------------------------------
|
||||
|
||||
This operation is also implemented in 'povhf_tools' (dec 2009)
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage()
|
||||
{
|
||||
fprintf(stderr, "* tga_makehf15 v 0.0.6 [%s] (dwtfywl) tontonTh\n",
|
||||
TGA_OUTILS_VERSION);
|
||||
fprintf(stderr, "Usage:\n\ttga_makehf15 source.tga hf.tga\n");
|
||||
fprintf(stderr, "\tno parameters, no options... but stay tuned :)\n\n");
|
||||
Image_print_version(0);
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *img, *hf15;
|
||||
int foo;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if (argc != 3) usage();
|
||||
|
||||
if ( (img=Image_TGA_alloc_load(argv[1]))==NULL )
|
||||
{
|
||||
fprintf(stderr, "can't load '%s'\n", argv[1]);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
if ( (hf15=Image_clone(img, 0))==NULL )
|
||||
{
|
||||
fprintf(stderr, "can't clone %p\n", img);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
/*
|
||||
* et c'est quoi le paramètre qui est à 0 ?
|
||||
*/
|
||||
foo = Image_hf15_rgb2hf(img, hf15, 0);
|
||||
Image_print_error("hf15 rgb2hf", foo);
|
||||
|
||||
foo = Image_TGA_save(argv[2], hf15, 0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -1,196 +0,0 @@
|
||||
/*
|
||||
FABRIQUEUR DE MIRES
|
||||
===================
|
||||
|
||||
http://krabulator.free.fr/devel/libimage.html
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
#define MIRCOL0 2
|
||||
#define MIRCOL1 3
|
||||
#define MIRCOL2 4
|
||||
#define MIRCOL3 5
|
||||
#define MIRCOL4 6
|
||||
#define DECOMP 10
|
||||
#define RGB0 14
|
||||
#define RGBSTRIP 15 /* mmmm, c'est quoi ? */
|
||||
#define GRAY0 16
|
||||
#define FNT16X24 20
|
||||
|
||||
mot_clef mots_clef[] =
|
||||
{
|
||||
{ "mircol0", MIRCOL0, "s", "free text" },
|
||||
{ "mircol1", MIRCOL1, "s", "texte libre" },
|
||||
{ "mircol2", MIRCOL2, "iis", "dims & free text" },
|
||||
{ "mircol3", MIRCOL3, "iiis", "dims, flag & free text" },
|
||||
{ "mircol4", MIRCOL4, "iiis", "dims, flag & free text" },
|
||||
{ "decomp", DECOMP, "", "mysterious operation" },
|
||||
{ "rgb0", RGB0, "", "" },
|
||||
{ "gray0", GRAY0, "i", "param: height" },
|
||||
{ "fnt16x24", FNT16X24, "s", "param: font name" },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* tga_mires v 0.0.24 [%s] (dwtfywl 2015) tonton Th\n",
|
||||
TGA_OUTILS_VERSION);
|
||||
fprintf(stderr, "usage:\n\ttga_mires type image.tga [params]\n");
|
||||
if (flag)
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
else
|
||||
Image_print_version(0);
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/* code selon ma methode de la rache le 25 avril 2007 */
|
||||
int
|
||||
mire_grise(Image_Desc *img)
|
||||
{
|
||||
int x, y;
|
||||
|
||||
if (256 != img->width) abort();
|
||||
|
||||
for (x=0; x<256; x++)
|
||||
for (y=0; y<img->height; y++)
|
||||
Image_plotRGB(img, x, y, x, x, x);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int do_mircol_2(Image_Desc *img, char *texte)
|
||||
{
|
||||
int foo;
|
||||
foo = Image_mircol_2(img, texte, 0);
|
||||
return foo;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int do_mircol_3(Image_Desc *img, char *texte, int mode)
|
||||
{
|
||||
int foo;
|
||||
fprintf(stderr, "%s : mode is %d\n", __func__, mode);
|
||||
foo = Image_mircol_3(img, texte, mode);
|
||||
return foo;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int do_mircol_4(Image_Desc *img, char *texte, int mode)
|
||||
{
|
||||
int foo;
|
||||
fprintf(stderr, "%s : mode is %d\n", __func__, mode);
|
||||
foo = Image_mircol_4(img, texte, mode);
|
||||
return foo;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *dst;
|
||||
int foo;
|
||||
int commande, nbargs, idx;
|
||||
char *cptr, *argument;
|
||||
int width, height;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if ( argc==2 && !strcmp(argv[1], "list") ) usage(1);
|
||||
if ( argc < 3) usage(0);
|
||||
|
||||
idx = cherche_mot_clef(argv[1], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
fprintf(stderr, "tga_mires: mot-clef %s inconnu...\n", argv[1]);
|
||||
exit(5);
|
||||
}
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "idx %d commande %d nbargs %d argc %d\n",
|
||||
idx, commande, nbargs, argc);
|
||||
#endif
|
||||
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, 3);
|
||||
#if DEBUG_LEVEL
|
||||
print_parametres();
|
||||
#endif
|
||||
|
||||
dst = NULL;
|
||||
|
||||
switch (commande)
|
||||
{
|
||||
case MIRCOL0:
|
||||
dst = Image_alloc(512, 512, 3);
|
||||
foo = Image_mircol_0(dst, GSP(0), 0);
|
||||
break;
|
||||
case MIRCOL1:
|
||||
dst = Image_alloc(512, 512, 3);
|
||||
foo = Image_mircol_1(dst, GSP(0), 0);
|
||||
break;
|
||||
case MIRCOL2:
|
||||
width = GIP(0);
|
||||
height = GIP(1);
|
||||
fprintf(stderr, "mircol2 sur %dx%d\n", width, height);
|
||||
dst = Image_alloc(width, height, 3);
|
||||
foo = do_mircol_2(dst, GSP(2));
|
||||
break;
|
||||
case MIRCOL3:
|
||||
width = GIP(0);
|
||||
height = GIP(1);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "mircol3 sur %dx%d\n", width, height);
|
||||
#endif
|
||||
dst = Image_alloc(width, height, 3);
|
||||
foo = do_mircol_3(dst, GSP(3), GIP(2));
|
||||
break;
|
||||
case MIRCOL4:
|
||||
width = GIP(0);
|
||||
height = GIP(1);
|
||||
fprintf(stderr, "mircol4 sur %dx%d\n", width, height);
|
||||
dst = Image_alloc(width, height, 3);
|
||||
foo = do_mircol_3(dst, GSP(3), GIP(2));
|
||||
break;
|
||||
case RGB0:
|
||||
dst = Image_alloc(256, 256, 3);
|
||||
foo = Image_mirRGB_0(dst, 0);
|
||||
break;
|
||||
case GRAY0:
|
||||
foo = GIP(0);
|
||||
fprintf(stderr, "hauteur = %d\n", foo);
|
||||
dst = Image_alloc(256, foo, 3);
|
||||
foo = mire_grise(dst);
|
||||
break;
|
||||
case FNT16X24:
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, "generation image fonte 16x24\n");
|
||||
#endif
|
||||
cptr = argv[2];
|
||||
argument = GSP(0);
|
||||
fprintf(stderr, "image fonte 16x24 %s -> %s\n",
|
||||
cptr, argument);
|
||||
foo = Image_t16x24_chars_map(cptr, argument, 0);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "method not implemented\n");
|
||||
foo=-1;
|
||||
break;
|
||||
}
|
||||
|
||||
if (foo)
|
||||
fprintf(stderr, "retour = %d, %s\n", foo, Image_err2str(foo));
|
||||
|
||||
if (dst != NULL)
|
||||
{
|
||||
foo = Image_TGA_save(argv[2], dst, 0);
|
||||
Image_DeAllocate(dst);
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
puts("");
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "../tthimage.h"
|
||||
|
||||
#define TGA_OUTILS_VERSION "0.59"
|
||||
#define TGA_OUTILS_VERSION "0.58"
|
||||
/*
|
||||
* 13 Dec 2001: v0.11 a cause du 'mustopen' pour les palettes.
|
||||
* 11 Fev 2002: v0.12 a cause du '-ansi' (hein Kerdeuzz, on y vient)
|
||||
|
@ -1,204 +0,0 @@
|
||||
/*
|
||||
, __
|
||||
/|/ \
|
||||
|___/ __, _|__|_ _ ,_ _ _
|
||||
| / | | | |/ / | / |/ |
|
||||
| \_/|_/|_/|_/|__/ |_/ | |_/
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
struct type
|
||||
{
|
||||
char *nom;
|
||||
int code;
|
||||
int nbparams;
|
||||
};
|
||||
|
||||
#define REPONSE 1
|
||||
#define GRAYNOISE 2
|
||||
#define RGBNOISE 3
|
||||
#define TEXTURE_1 21
|
||||
#define TEXTURE_2 22
|
||||
#define TEXTURE_3 23
|
||||
#define EXPOV_0 30
|
||||
#define PATT_102 32 /* new June 2003 */
|
||||
#define GRAYNOISE2 40
|
||||
#define RGBNOISE1 50
|
||||
#define RGBNOISE2 51
|
||||
#define CHECK_BW 80
|
||||
#define PATT_000 90
|
||||
|
||||
static char no_help[] = "no help...";
|
||||
|
||||
mot_clef mots_clef[] =
|
||||
{
|
||||
{ "graynoise", GRAYNOISE, "ii", "bruit gris" },
|
||||
{ "rgbnoise", RGBNOISE, "ii", "bruit RGB" },
|
||||
{ "42", REPONSE, "ii", no_help },
|
||||
{ "reponse", REPONSE, "ii", no_help },
|
||||
{ "text1", TEXTURE_1, "ii", no_help },
|
||||
{ "text2", TEXTURE_2, "iii", no_help },
|
||||
{ "expov", EXPOV_0, "iii", no_help },
|
||||
{ "centdeux", PATT_102, "iiii", no_help },
|
||||
{ "first", PATT_000, "i", "byte mask" },
|
||||
{ "graynoise2", GRAYNOISE2, "ii", no_help },
|
||||
{ "rgbnoise1", RGBNOISE1, "iiiiii", no_help },
|
||||
{ "rgbnoise2", RGBNOISE2, "iiiiii", no_help },
|
||||
{ "check_bw", CHECK_BW, "iiii", no_help },
|
||||
{ NULL, 0, NULL, NULL }
|
||||
};
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* Tga Pattern v 0.0.25 [%s] %s\n",
|
||||
TGA_OUTILS_VERSION, TGA_OUTILS_COPYLEFT);
|
||||
Image_print_version(flag);
|
||||
|
||||
fprintf(stderr, "\nUsage:\n");
|
||||
fprintf(stderr, "\ttga_pattern dest.tga width height type [params]\n");
|
||||
|
||||
if (flag)
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
* argv[1] nom du fichier resultat
|
||||
* argv[2] largeur
|
||||
* argv[3] hauteur
|
||||
* argv[4] type du pattern
|
||||
*/
|
||||
#define FIRST_PARAM 5
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *dst;
|
||||
int foo, width, height;
|
||||
RGBA rgba1, rgba2;
|
||||
int commande, nbargs, idx;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
srand(getpid());
|
||||
|
||||
if (argc==1) usage(0);
|
||||
|
||||
if (argc==2 && !strcmp("list", argv[1]))
|
||||
{
|
||||
usage(1);
|
||||
}
|
||||
if (argc < 5) usage(0);
|
||||
|
||||
idx = cherche_mot_clef(argv[4], mots_clef, &commande, &nbargs);
|
||||
if (idx < 0)
|
||||
{
|
||||
fprintf(stderr, "mot-clef %s inconnu...\n", argv[4]);
|
||||
exit(5);
|
||||
}
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, " idx=%d commande=%d nbargs=%d\n", idx, commande, nbargs);
|
||||
#endif
|
||||
|
||||
foo = parse_parametres(argc, argv, mots_clef[idx].ptypes, FIRST_PARAM);
|
||||
#if DEBUG_LEVEL
|
||||
fprintf(stderr, " retour parse parameters = %d\n", foo);
|
||||
#endif
|
||||
|
||||
/* allocation et preparation de l'image */
|
||||
width = atoi(argv[2]);
|
||||
height = atoi(argv[3]);
|
||||
if (width<1 || width>16000 || height<1 || height>16000)
|
||||
{
|
||||
fprintf(stderr, "%s: hu ho ? invalid dimension\n", argv[0]);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
dst = Image_alloc(width, height, 3);
|
||||
|
||||
/*
|
||||
* calcul de l'image patternelle.
|
||||
*/
|
||||
switch(commande)
|
||||
{
|
||||
case REPONSE:
|
||||
foo = Image_pattern_042(dst, GIP(0));
|
||||
break;
|
||||
|
||||
case RGBNOISE:
|
||||
foo = Image_rgb_noise_0(dst, GIP(0), GIP(1));
|
||||
break;
|
||||
|
||||
case GRAYNOISE:
|
||||
foo = Image_gray_noise_0(dst, GIP(0), GIP(1));
|
||||
break;
|
||||
|
||||
case TEXTURE_1:
|
||||
foo = Image_texture_1(dst, GIP(0), GIP(1));
|
||||
break;
|
||||
|
||||
case TEXTURE_2:
|
||||
foo = Image_texture_2(dst, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case EXPOV_0:
|
||||
foo = Image_pattern_100(dst, GIP(0), GIP(1), GIP(2));
|
||||
break;
|
||||
|
||||
case PATT_000:
|
||||
foo = Image_pattern_000(dst, GIP(0));
|
||||
break;
|
||||
|
||||
case PATT_102:
|
||||
foo = Image_pattern_102(dst, GIP(0), GIP(1), GIP(2), GIP(3));
|
||||
break;
|
||||
|
||||
case GRAYNOISE2:
|
||||
foo = Image_gray_noise_2(dst, GIP(0), GIP(1));
|
||||
break;
|
||||
|
||||
case RGBNOISE1:
|
||||
rgba1.r = GIP(0); rgba2.r = GIP(1);
|
||||
rgba1.g = GIP(2); rgba2.g = GIP(3);
|
||||
rgba1.b = GIP(4); rgba2.b = GIP(5);
|
||||
foo = Image_rgb_noise_1(dst, &rgba1, &rgba2);
|
||||
break;
|
||||
|
||||
case RGBNOISE2:
|
||||
rgba1.r = GIP(0); rgba2.r = GIP(1);
|
||||
rgba1.g = GIP(2); rgba2.g = GIP(3);
|
||||
rgba1.b = GIP(4); rgba2.b = GIP(5);
|
||||
foo = Image_rgb_noise_2(dst, &rgba1, &rgba2);
|
||||
break;
|
||||
|
||||
case CHECK_BW:
|
||||
rgba1.r = rgba1.g = rgba1.b = GIP(2);
|
||||
rgba2.r = rgba2.g = rgba2.b = GIP(3);
|
||||
fprintf(stderr, "CHECK_BW : encore en mise au point...\n");
|
||||
foo = Image_pattern_104(dst, GIP(0), GIP(1), &rgba1, &rgba2);
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "type #%d not implemented\n", commande);
|
||||
exit(5);
|
||||
}
|
||||
|
||||
if (foo)
|
||||
Image_print_error("fabrication pattern", foo);
|
||||
|
||||
foo = Image_TGA_save(argv[1], dst, 0);
|
||||
|
||||
if (foo)
|
||||
Image_print_error("sauvegarde pattern", foo);
|
||||
|
||||
return 0;
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -1,117 +0,0 @@
|
||||
/*
|
||||
_
|
||||
| |_ __ _ __ _ _ __ ___ _ __ ___ __ _ _ __
|
||||
| __/ _` |/ _` | | '__/ _ \ '_ ` _ \ / _` | '_ \
|
||||
| || (_| | (_| | | | | __/ | | | | | (_| | |_) |
|
||||
\__\__, |\__,_|___|_| \___|_| |_| |_|\__,_| .__/
|
||||
|___/ |_____| |_|
|
||||
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include "tga_outils.h"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* tga_remap v 0.1.21 [%s] %s\n",
|
||||
TGA_OUTILS_VERSION, TGA_OUTILS_COPYLEFT);
|
||||
fprintf(stderr, "Usage: tga_remap M <src.tga> <color.map> <dst.tga>\n");
|
||||
fprintf(stderr, " tga_remap -? for more infos...\n");
|
||||
if (flag)
|
||||
{
|
||||
PERL;
|
||||
PERR("valid values for 'M'");
|
||||
PERR(" 0 minimal distance");
|
||||
PERR(" 1 min of R or G or B dist");
|
||||
PERR(" 2 ???");
|
||||
PERR(" 11 minimal dist for R");
|
||||
PERR(" 12 minimal dist for G");
|
||||
PERR(" 13 minimal dist for B");
|
||||
PERL;
|
||||
Image_print_version(2);
|
||||
}
|
||||
else
|
||||
{
|
||||
Image_print_version(0);
|
||||
}
|
||||
exit(5);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
Image_Desc *src, *dst;
|
||||
int foo, type;
|
||||
RGB_map map;
|
||||
long t_debut, t_fin;
|
||||
|
||||
dump_command_line(argc, argv, 0);
|
||||
|
||||
if (argc==2 && !strcmp(argv[1], "-?")) usage(1);
|
||||
|
||||
if (argc != 5) usage(0);
|
||||
|
||||
if ( (src=Image_TGA_alloc_load(argv[2])) == NULL )
|
||||
{
|
||||
fprintf(stderr, "can't load '%s'\n", argv[2]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if ( (foo=Image_load_color_Map(argv[3], "map", &map)) )
|
||||
{
|
||||
fprintf(stderr, "%s: %s: err %d '%s'\n", argv[0], argv[3],
|
||||
foo, Image_err2str(foo));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (must_be_verbose())
|
||||
{
|
||||
fprintf(stderr, "Il y a %d couleurs dans la palette '%s'\n",
|
||||
map.nbre, argv[3]);
|
||||
}
|
||||
|
||||
/*
|
||||
* que faire si le nombre de couleurs dans la palette est pas bon ???
|
||||
*/
|
||||
|
||||
if ( (dst=Image_clone(src, 0))==NULL )
|
||||
{
|
||||
fprintf(stderr, "can't clone %p, exiting...\n", src);
|
||||
exit(2);
|
||||
}
|
||||
|
||||
/* ---------- determiner le type de remap demande */
|
||||
if ( (sscanf(argv[1], "%d", &type)) != 1 ) type = 0;
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
t_debut = time(NULL);
|
||||
#endif
|
||||
|
||||
if ( (foo=Image_colors_2_Map(src, dst, &map, type)) )
|
||||
{
|
||||
fprintf(stderr, "%s: color->map: erreur %d: %s\n", argv[0],
|
||||
foo, Image_err2str(foo));
|
||||
/* Oulala ! c'est pas un peu brutal ? */
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#if DEBUG_LEVEL
|
||||
t_fin = time(NULL);
|
||||
fprintf(stderr, " remap : %ld secondes\n", t_fin-t_debut);
|
||||
#endif
|
||||
|
||||
foo = Image_TGA_save(argv[4], dst, 0);
|
||||
if (foo)
|
||||
{
|
||||
fprintf(stderr, "%s: TGA_save: err %d %s\n",
|
||||
argv[0], foo, Image_err2str(foo));
|
||||
exit(1);
|
||||
}
|
||||
|
||||
exit (0);
|
||||
}
|
||||
/*::------------------------------------------------------------------::*/
|
@ -37,16 +37,14 @@ mot_clef mots_clef[] =
|
||||
{ "pix0", TV_PIX0, "iii", "func not finished" },
|
||||
{ "pix1", TV_PIX1, "iii", "func not finished" },
|
||||
{ "triligne", TV_TRILIGNE, "f", "flag : rand or modulo" },
|
||||
{ "cplus0", TV_PROTO, "i", "premier cplus" },
|
||||
{ "proto", TV_PROTO, "i", "prototype canal+" }
|
||||
};
|
||||
/*::------------------------------------------------------------------::*/
|
||||
void usage(int flag)
|
||||
{
|
||||
fprintf(stderr, "* tga_television v 0.0.24 [%s] %s\n",
|
||||
fprintf(stderr, "* tga_television v 0.0.23 [%s] %s\n",
|
||||
TGA_OUTILS_VERSION, TGA_OUTILS_COPYLEFT);
|
||||
fprintf(stderr, " compiled %s at %s\n", __DATE__, __TIME__);
|
||||
fprintf(stderr, "Usage:\n\ttga_television <src.tga> method <dst.tga> [params]\n");
|
||||
fprintf(stderr, "Usage: tga_television <src.tga> method <dst.tga> [params]\n");
|
||||
Image_print_version(0);
|
||||
liste_mots_clefs(mots_clef, 42);
|
||||
|
||||
|
30
bmp.h
Normal file
30
bmp.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* header file for BMP functions
|
||||
* -----------------------------
|
||||
* 'tthimage.h' must be included before this file.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma pack(1) /* est-ce encore utile ? */
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char id[2];
|
||||
long filesize;
|
||||
uint16_t reserved[2];
|
||||
long headerSize;
|
||||
long infoSize;
|
||||
long width;
|
||||
long height;
|
||||
short planes;
|
||||
short bits;
|
||||
long compression;
|
||||
long SizeImage;
|
||||
long xpixpermeter;
|
||||
long ypixpermeter;
|
||||
long clrused;
|
||||
long clrimportant;
|
||||
} BMPHEAD;
|
||||
|
||||
#pragma pack()
|
||||
|
8
build.sh
8
build.sh
@ -2,11 +2,5 @@
|
||||
|
||||
|
||||
cd Lib
|
||||
echo "========== in $PWD"
|
||||
make testtga
|
||||
cd ..
|
||||
|
||||
cd Tools
|
||||
echo "========== in $PWD"
|
||||
make
|
||||
make foo
|
||||
cd ..
|
||||
|
@ -4,7 +4,7 @@
|
||||
http:///la.buvette.org/devel/libimage/
|
||||
*/
|
||||
#ifndef IMAGE_VERSION_STRING
|
||||
#define IMAGE_VERSION_STRING "0.4.49"
|
||||
#define IMAGE_VERSION_STRING "0.4.47"
|
||||
|
||||
/*::------------------------------------------------------------------::*/
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user