commit du soir, espoir

master
tth 3 years ago
parent 33daa84530
commit 37ee68278b
  1. 3
      .gitignore
  2. 58
      doc/the_floatimg_hack.tex

3
.gitignore vendored

@ -23,8 +23,7 @@ doc/*.pdf
doc/*.idx
doc/*.ilg
doc/*.ind
doc/foo.tex
doc/co*.tex
funcs/t
funcs/*.o
funcs/*.png

@ -9,6 +9,8 @@
\usepackage{listings}
\usepackage{babel}
\usepackage{graphicx} % for gnuplot ylabel rotate
\usepackage{pifont} % caractères rigolos
\usepackage{enumitem}
\setitemize[1]{label={\ding{87}}}
@ -214,6 +216,13 @@ faciliter un peu la chose. Il prend également en compte la copie
des divers binaires du dossier \texttt{tools/} (cf. page \pageref{outils})
dans le répertoire prévu à cet effet : \texttt{/usr/local/bin}.
Il reste enfin quelques exemples d'utilisation des outils de la
ligne de commande depuis un shell
dans le répertoire \texttt{scripts/}.
Ils sont décrits plus en détail page
\pageref{scripts}, et c'est à vous de les adapter à votre \textsl{usecase}.
Faites-en ce que vous voulez.
% =================================================================
\section{Utilisation coté codeur}\label{codaz}
@ -334,7 +343,7 @@ Si tout s'est bien passé (valeur retournée égale à 0),
on va trouver la largeur dans \texttt{datas[0]},
la hauteur dans \texttt{datas[1]} et le type dans
\texttt{datas[2]}\footnote{La fonction
\texttt{fimg\_type\_is\_valid(int type)} peut vous aider}.
\texttt{fimg\_type\_is\_valid(int type)} peut vous aider\dots}.
Je sais aussi que certains d'entre vous aiment la facilité, aussi
je vais vous révéler l'existence d'un nouveau truc bien plus
@ -348,6 +357,9 @@ memset(&head, 0, sizeof(FloatImg));
foo = fimg_create_from_dump("lena.fimg", &head);
\end{verbatim}
Si la valeur retournée est différente de 0, c'est que quelque
chose s'est mal passé.
Certains messages sont parfois parfois explicites.
% _________
@ -358,8 +370,7 @@ Bon, vous avez une image latente, et vous souhaitez dessiner dessus
Il y a des fonctions pour ça, par exemple~:
\begin{verbatim}
int fimg_plot_rgb (FloatImg *head, int x, int y,
float r, float g, float b);
int fimg_plot_rgb(FloatImg *head, int x, int y, float r, float g, float b);
\end{verbatim}
Les paramètres sont explicites, mais leur validité doit être
@ -369,6 +380,11 @@ qui ajoute du rgb à un pixel, laquelle fonction a d'ailleurs été
à la base de la seconde génération de la
photographie\index{photographie} en cumul\index{cumul}.
Inversement, la fonction
\texttt{fimg\_get\_rgb(FloatImg *head, int x, int y, float *rgb)}
permet de lire les valeurs des trois canaux d'un pixel donné.
Là aussi, il n'y a aucun contrôle sur la validité des valeurs
$x$ et $y$ de la demande.
% ----------------------------------
@ -379,6 +395,11 @@ semblent cohérents avec la notion d'image flottante.
Certains d'entre eux, les plus simples, sont disponibles.
Les autres sont à imaginer.
\begin{figure}
\input{cos01.tex} % XXX XXX XXX
\caption{Correcteur cos01}
\end{figure}
Ils prennent chacun trois paramètres, d'abord les images
source et destination (\texttt{* FloatImg}), et le troisième
est un nombre en double précision donnant la valeur
@ -393,9 +414,15 @@ int fimg_cos_01(FloatImg *s, FloatImg *d, double maxval);
int fimg_cos_010(FloatImg *s, FloatImg *d, double maxval);
\end{verbatim}
Si vous souhaitez rajouter votre propre méthode de modification
de contraste, il y a quelques explication en page \pageref{exemplefunc}.
\begin{figure}
\input{foo.tex} % XXX XXX XXX
\caption{Correcteur cos01}
\input{cos010.tex} % XXX XXX XXX
\caption{Correcteur cos010}
\end{figure}
Rappelons qu'il est possible pour un logiciel applicatif
@ -461,7 +488,9 @@ dans ce domaine\dots
\subsubsection{Vers PNM}\index{PNM}
Nous avons ici 16 bits par composante, mais au prix
Nous avons ici 16 bits par composante, soit 65536 valeurs différentes,
ce qui est bien au-delà de ce que peuvent percevoir vos yeux.
Hélas, c'est au prix
d'une taille énorme sur les fichiers. D'un autre coté,
l'utilisation du codage \textsc{ascii}\index{ascii}
(alors qu'on pourrait mettre du binaire, plus compact) y est
@ -494,12 +523,13 @@ Mais je me soigne. Le mode 16 bits va bientôt arriver.
int fimg_save_as_png(FloatImg *src, char *outname, int flags);
\end{verbatim}
Tous les flags doivent être à zéro.
\subsubsection{Vers TIFF}\index{TIFF}
\subsubsection{Vers/depuis TIFF}\index{TIFF}
Le format canonique de la PAO\index{PAO} du siècle dernier. Il permet
de gérer une foultitude de formats numériques. C'est aussi un format
classique proposé par les scanners corporates.
classique proposé par les gros scanners corporates.
To be done\index{XXX}
@ -553,7 +583,7 @@ des bords d'image.
% ----------------------------------
\subsection{Exemple de fonction}\index{exemple}
\subsection{Exemple de fonction}\index{exemple}\label{exemplefunc}
Nous allons maintenant écrire une fonction intégrable dans
le répertoire \texttt{funcs/}.
@ -759,7 +789,10 @@ de méthodes, toutes plus légitimes que les autres.
% -------------------------------------------------------------------
\section{TODO}\index{TODO}\label{TODO}
Il reste plein de choses à faire pour que ce soit vraiment utilisable.
Il reste plein de choses à faire pour que ce soit vraiment utilisable,
surtout dans un contexte artistique à grande porosité.
C'est par ces frottements de techniques ayant du sens que les
choses seront acquises.
\begin{itemize}
\item Import/export au format \textsc{tiff}\index{tiff}.
@ -767,6 +800,7 @@ Il reste plein de choses à faire pour que ce soit vraiment utilisable.
\textsl{[en cours]}.
\item Compléter les traitements mathémathiques (eg le gamma\index{gamma}).
\item Formaliser les codes d'erreur. \textbf{Urgent}.
\item Faire une passe complète de Valgrind\index{valgrind}.
\end{itemize}
% -------------------------------------------------------------------
@ -841,6 +875,10 @@ de films flous\index{film} à partir de photos floues.
Le script \texttt{scripts/echomix.sh} est une première expérimentation
en bash, utilisant deux outils en \textsc{cli}.
C'est juste une POC\index{POC}, et une implémentation bien plus
complète écrite en \textbf{C}\index{C} est déja en chantier,
avec une complexité prévue à un niveau assez réjouissant.
% -------------------------------------------------------------------
\section{Video for Linux}\index{v4l2}

Loading…
Cancel
Save