forked from tTh/FloatImg
bla
This commit is contained in:
parent
72e162e4cf
commit
fed3076b92
@ -69,7 +69,7 @@ chaque pixel en virgule flottante sur 32bits, le type
|
|||||||
% XXX XXX XXX\vspace{1em}
|
% XXX XXX XXX\vspace{1em}
|
||||||
|
|
||||||
\textbf{Attention !} tout le code que nous allons voir ensemble est en
|
\textbf{Attention !} tout le code que nous allons voir ensemble est en
|
||||||
perpétuelle évolution\footnote{voir page \pageref{TODO}},
|
perpétuelle évolution\footnote{voir page \pageref{TODO} pour les détails},
|
||||||
et sa fiablité (surtout sur certains aspects mathématiques)
|
et sa fiablité (surtout sur certains aspects mathématiques)
|
||||||
reste à démontrer\index{valgrind}.
|
reste à démontrer\index{valgrind}.
|
||||||
Mais le service après-vente est assez réactif. Du moins
|
Mais le service après-vente est assez réactif. Du moins
|
||||||
@ -77,7 +77,7 @@ pour ceux qui suivent le canal \texttt{\#tetalab} sur le réseau
|
|||||||
IRC de Freenode.
|
IRC de Freenode.
|
||||||
|
|
||||||
\textbf{Attention !} ce document commence par une bonne rafale
|
\textbf{Attention !} ce document commence par une bonne rafale
|
||||||
de technique parfois \textsl{hardue}.
|
de technique parfois \textsl{hardue}, avec des pointeurs dedans.
|
||||||
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.
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ dans les machin-trocs, et un grain d'image vraiment présent.
|
|||||||
|
|
||||||
Ah vous en voulez de la technique ? Oké, on y va.
|
Ah vous en voulez de la technique ? Oké, on y va.
|
||||||
En fait, on va tripoter pleins de nombres, plus ou moins rangés dans
|
En fait, on va tripoter pleins de nombres, plus ou moins rangés dans
|
||||||
des pixels, pour concrétiser l'existence perceptuelles de ces
|
des champs de pixels, pour concrétiser l'existence perceptuelles de ces
|
||||||
grains de lumière chromatisés.
|
grains de lumière chromatisés.
|
||||||
|
|
||||||
\subsubsection*{quelques belles images / schémas polychromes en intro pour
|
\subsubsection*{quelques belles images / schémas polychromes en intro pour
|
||||||
@ -191,7 +191,8 @@ et sur disque. Ça a été imaginé de façon presque empirique,
|
|||||||
mais nous sommes tous là pour améliorer les choses, dans
|
mais nous sommes tous là pour améliorer les choses, dans
|
||||||
la mesure de nos moyens.
|
la mesure de nos moyens.
|
||||||
Nous allons donc directement rentrer au cœur du problème,
|
Nous allons donc directement rentrer au cœur du problème,
|
||||||
en écrivant quelques lignes de code.
|
en écrivant quelques lignes de code montrant le fonctionnement
|
||||||
|
général de la chose.
|
||||||
|
|
||||||
\subsection{L'idée}
|
\subsection{L'idée}
|
||||||
|
|
||||||
@ -207,16 +208,19 @@ pour gérer la machinerie interne.
|
|||||||
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
int width = 640, height = 480;
|
int width = 640, height = 480;
|
||||||
char *fname = "exemple.fimg";
|
char *fname = "quux.fimg";
|
||||||
FloatImg fimg;
|
FloatImg fimg;
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
Ensuite, nous enchainerons trois étapes : la création de l'image
|
Ensuite, nous enchainerons trois étapes : la création de l'image
|
||||||
en mémoire centrale, l'initialisation des valeurs de chaque pixel à 0.0,
|
en mémoire centrale, l'initialisation des valeurs de chaque pixel à 0.0
|
||||||
|
(une valeur que certains associent au noir complet, et d'autres à une
|
||||||
|
impossibilité quantique),
|
||||||
et pour conclure, l'enregistrement dans un fichier\footnote{Au format
|
et pour conclure, l'enregistrement dans un fichier\footnote{Au format
|
||||||
ésotérique, mais très véloce.} binaire.
|
ésotérique, mais très véloce.} binaire.
|
||||||
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
|
memset(fimg, 0, sizeof(FloatImg));
|
||||||
foo = fimg_create(&fimg, width, height, FIMG_TYPE_RGB);
|
foo = fimg_create(&fimg, width, height, FIMG_TYPE_RGB);
|
||||||
if (foo) {
|
if (foo) {
|
||||||
fprintf(stderr, "create floatimg -> %d\n", foo);
|
fprintf(stderr, "create floatimg -> %d\n", foo);
|
||||||
@ -291,7 +295,10 @@ comme \textsc{gnu}/make\index{make}.
|
|||||||
Une connaissance de base de l'utilisation du shell\index{shell}
|
Une connaissance de base de l'utilisation du shell\index{shell}
|
||||||
et de l'écriture de Makefile's sera un plus.
|
et de l'écriture de Makefile's sera un plus.
|
||||||
|
|
||||||
Il faut aussi savoir où trouver le code.
|
Il faut aussi savoir où trouver le code. Il est dans le Git du
|
||||||
|
Tetalab. Mais comme je ne comprend rien à Git, c'est pas la peine
|
||||||
|
de m'envoyer des trucs genre \textsl{pull-request} auquels je ne
|
||||||
|
comprend rien.
|
||||||
|
|
||||||
\subsection{Compilation}
|
\subsection{Compilation}
|
||||||
|
|
||||||
@ -489,7 +496,7 @@ foo = fimg_create_from_dump("lena.fimg", &head);
|
|||||||
|
|
||||||
Si la valeur retournée est différente de 0, c'est que quelque
|
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.
|
Certains messages sont parfois explicites. Mais parfois non.
|
||||||
|
|
||||||
% _________
|
% _________
|
||||||
|
|
||||||
@ -642,7 +649,7 @@ Tout d'abord pour normaliser l'endianess et le packing\dots
|
|||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char magic[8];
|
char magic[8];
|
||||||
int w, h, t;
|
int32_t w, h, t;
|
||||||
} FimgFileHead;
|
} FimgFileHead;
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
@ -656,7 +663,7 @@ les quatre premier octets doivent contenir les quatre caractères
|
|||||||
Le champ \texttt{t} (le type de l'image) doit avoir les trois octets
|
Le champ \texttt{t} (le type de l'image) doit avoir les trois octets
|
||||||
de poids fort à 0. Vous trouverez les constantes de type dans le
|
de poids fort à 0. Vous trouverez les constantes de type dans le
|
||||||
fichier \texttt{floatimg.h}, et quelques informations
|
fichier \texttt{floatimg.h}, et quelques informations
|
||||||
(non-)essentielles.
|
(non-)essentielles qui ne vous servirons probablement à rien.
|
||||||
|
|
||||||
% ----------------------------------
|
% ----------------------------------
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user