bla du dimanche soir

This commit is contained in:
tTh 2023-07-10 02:26:57 +02:00
parent 0a482a7316
commit 82ffe1c2cc
5 changed files with 29 additions and 12 deletions

View File

@ -53,6 +53,8 @@
\section*{Une image flottante ?} \section*{Une image flottante ?}
\textsl{Back in a far past part of history.}
\textsl{Mais de quoi parle-t-on exactement ?} \textsl{Mais de quoi parle-t-on exactement ?}
% XXX XXX XXX\vspace{1em} % XXX XXX XXX\vspace{1em}
@ -79,7 +81,12 @@ IRC de \textsl{libera.chat}.
\textbf{Attention !} ce document commence par une bonne rafale \textbf{Attention !} ce document commence par une bonne rafale
de technique parfois \textsl{hardue}\footnote{hard + ardue = private de technique parfois \textsl{hardue}\footnote{hard + ardue = private
joke Usenet}, avec des pointeurs dedans. joke Usenet}, avec des pointeurs dedans, mais vous êtes déja
au courant.
Le pointeur, c'est bien, c'est comme le doigt sur les écrans
de zombiephones, ça sert juste à dire «~C'est là !~», c'est
donc gravement utile, mais parfois, le doigt glisse.
Et là, tout peut arriver.
Vous avez parfaitement le droit de sauter directement à Vous avez parfaitement le droit de sauter directement à
la page \pageref{outils} pour quelque chose de plus concret. la page \pageref{outils} pour quelque chose de plus concret.
@ -510,7 +517,7 @@ Si la valeur retournée est différente de 0, c'est que quelque
chose s'est probablement mal passé. chose s'est probablement mal passé.
Certains messages sont parfois explicites. Mais parfois non. Certains messages sont parfois explicites. Mais parfois non.
Quand aux valeurs retournées en cas d'erreur, c'est le désordre Quand aux valeurs retournées en cas d'erreur, c'est le désordre
intégral. intégral\footnote{Un vrai désastre, même...}.
% _________ % _________
@ -1396,7 +1403,7 @@ le premier pouvant salement brotcher une image, et le second capable de
mélanger harmonieusement deux images, la balance est équilibrée. mélanger harmonieusement deux images, la balance est équilibrée.
Il s'agit donc d'un petit programme écrit en Bash\index{bash}, un langage Il s'agit donc d'un petit programme écrit en Bash\index{bash}, un langage
dont la connaissance est, pour moi, indispendable à qui veut faire des dont la connaissance est, pour moi, indispensable à qui veut faire des
images kitchies\index{kitchy}. Mais ne vous inquiétez pas, c'est en images kitchies\index{kitchy}. Mais ne vous inquiétez pas, c'est en
fait assez simple à comprendre. Et comprendre, c'est apprendre. fait assez simple à comprendre. Et comprendre, c'est apprendre.
@ -1625,10 +1632,12 @@ devez mettre ce bout de XML\index{XML} dans le fichier
\end{lstlisting} \end{lstlisting}
C'est juste un hack rapide, qui ne fonctionne pas très bien avec C'est juste un hack rapide, qui ne fonctionne pas très bien avec
d'autres commande de IM, comme identify, qui a tendance à d'autres commande de IM, comme \texttt{identify}\index{identify},
qui a tendance à
raconter un peu n'importe quoi, puisqu'elle se base sur le raconter un peu n'importe quoi, puisqu'elle se base sur le
résultat de la conversion. résultat de la conversion.
Je compte donc sur le bouquin de \textsl{Brunus} pour avancer\dots Je compte donc sur le bouquin de \textsl{Brunus}\index{Brunus}
pour avancer\dots
\subsection{Gimp}\index{Gimp} \subsection{Gimp}\index{Gimp}
@ -1662,7 +1671,7 @@ Bon courage pour toutes les explorer, voire même juste les comprendre.
Il y a d'autres logiciels pour lesquels écrire une fonction d'importation Il y a d'autres logiciels pour lesquels écrire une fonction d'importation
serait bien~: \textsl{Geeqie}, un visualiseur d'image fort pratique, ou serait bien~: \textsl{Geeqie}, un visualiseur d'image fort pratique, ou
\textsl{Krita} qui semble avoir les faveurs de \textsl{Krita} qui semble avoir les faveurs de
dessinateurs de talent\footnote{Oui, David, c'est à toi que je pense.}. dessinateurs de talent.
Ce qui nous conduit à une question importante~: quels sont les logiciels Ce qui nous conduit à une question importante~: quels sont les logiciels
qui gèrent le chargement d'image par un système de qui gèrent le chargement d'image par un système de
\textsl{plugin}\index{plugin}, \textsl{plugin}\index{plugin},

11
essai.c
View File

@ -18,6 +18,8 @@ int verbosity;
void fait_un_dessin(FloatImg *dessin) void fait_un_dessin(FloatImg *dessin)
{ {
// fprintf(stderr, "je dessine dans %p\n", dessin);
fimg_draw_something(dessin); fimg_draw_something(dessin);
} }
@ -26,6 +28,7 @@ void help(void)
{ {
puts("Options :"); puts("Options :");
puts("\t-d WxH\timage size"); puts("\t-d WxH\timage size");
puts("\t-v\tincrease verbosity");
exit(0); exit(0);
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
@ -57,7 +60,7 @@ fimg_drand48(&fimgB, 100.0);
foo = fimg_dump_to_file(&fimgB, "B.fimg", 0); foo = fimg_dump_to_file(&fimgB, "B.fimg", 0);
fimg_timer_set(0); fimg_timer_set(0);
#define NBP 500 #define NBP 5
for (foo=0; foo<NBP; foo++) { for (foo=0; foo<NBP; foo++) {
if (verbosity) { if (verbosity) {
printf("%5d / %5d\n", foo, NBP); printf("%5d / %5d\n", foo, NBP);
@ -67,9 +70,9 @@ for (foo=0; foo<NBP; foo++) {
// fimg_mul(&fimgA, &fimgB, &fimgA); // fimg_mul(&fimgA, &fimgB, &fimgA);
} }
tb = fimg_timer_get(0); tb = fimg_timer_get(0);
fprintf(stderr, "%s = %f seconds\n", __func__, tb); fprintf(stderr, "%s = %.2f seconds, %.2f s/p\n", __func__, tb, tb/(double)NBP);
foo = fimg_save_as_pnm(&fimgA, "drand48.pnm", 0); foo = fimg_save_as_pnm(&fimgA, "out.pnm", 0);
foo = fimg_dump_to_file(&fimgA, "drand48.fimg", 0); foo = fimg_dump_to_file(&fimgA, "out.fimg", 0);
fimg_destroy(&fimgA); fimg_destroy(&fimgA);
fimg_destroy(&fimgB); fimg_destroy(&fimgB);

View File

@ -110,6 +110,9 @@ for (y=0; y<hd; y++) {
return 0; return 0;
} }
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
/*
* this function can be optimized with direct pixel copy
*/
int fimg_extractor(FloatImg *in, FloatImg *out, FimgArea51 *rect) int fimg_extractor(FloatImg *in, FloatImg *out, FimgArea51 *rect)
{ {
int xs, ys, xd, yd; int xs, ys, xd, yd;

View File

@ -19,7 +19,7 @@ do
# only take the good spot # only take the good spot
fimg=$(printf "%s/%05d.fimg" ${OUTD} ${idx}) fimg=$(printf "%s/%05d.fimg" ${OUTD} ${idx})
${EXTR} -o ${fimg} ${TMPG} 800,600,560,240 ${fimg} ${EXTR} -o ${fimg} ${TMPG} 800,600,560,240
# display ${fimg} ; exit # display ${fimg} ; exit

View File

@ -18,7 +18,9 @@ int extractor(char *srcname, char *dstname, FimgArea51 *rect)
FloatImg src, dst; FloatImg src, dst;
int foo; int foo;
#if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( %s %s %p )\n", __func__, srcname, dstname, rect); fprintf(stderr, ">>> %s ( %s %s %p )\n", __func__, srcname, dstname, rect);
#endif
if (verbosity) { if (verbosity) {
print_rectangle((char *)__func__, rect); print_rectangle((char *)__func__, rect);