# Ouvrir un .clg

**URL:** <https://www.debian-fr.org/t/ouvrir-un-clg/53290>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 12:13 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290 "2016-02-21T12:13:14Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 12:13 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/1 "2016-02-21T12:13:14Z")

</div>

Bon alors j’ai hésité pendant un long moment à savoir si je devais poster dans programmation ou dans SD ^^

Mon problème est le suivant, grâce à CaML (caml-light) j’ai pu créer une image.

Tout fonctionne, l’image est correctement créer, en effet, j’ai fait des tests et je peux, toujours via caml ouvrir l’image.

Mon problème est le suivant :

Je n’ai trouvé nulle part comment faire pour demander à caml de me rendre une image avec l’extension bmp par exemple (je ne trouve que comment en ouvrir une)

CaML créer une fichier .clg … Qui n’est pas reconnu par gimp, imagemagik, … (j’ai deja essayé de créer les images en rajoutant l’extension .bmp et ça n’a pas fonctionné)

Donc ma question est la suivante : Est-ce que quelqu’un a un moyen pour que je puisse accéder à cette image efficacement ? (pouvoir travailler dessus avec quelque chose d’autre que caml)

Je joins aussi mon image : [http://www.mediafire.com/?s7d84j6hfouuza2](http://www.mediafire.com/?s7d84j6hfouuza2)

merci d’avance

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:13 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/2 "2016-02-21T12:13:15Z")

</div>

Tu as lu la page 3 de ce pdf ? [pauillac.inria.fr/~cheno/lettre/lettre1.pdf](http://pauillac.inria.fr/~cheno/lettre/lettre1.pdf) Il semble expliquer comment partir d’un bmp.

Sinon j’ai pas trouvé grand chose non plus (François aurait probablement sut).

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 12:13 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/3 "2016-02-21T12:13:17Z")

</div>

Ben en fait ça permet à CaML de lire des images bmp pour pouvoir travailler avec.

Moi ce que je souhaite faire, c’est l’inverse …

Sinon là je me débrouille à coup d’imprim écran. Ça marche plutôt bien mais bon, c’est pas très propre ^^

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 12:41 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/4 "2016-02-21T12:41:21Z")

</div>

petit up

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 12:49 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/5 "2016-02-21T12:49:37Z")

</div>

Tu trouveras chez moi le paquet placeimage qui est un programme en camllight puis ocaml (pour la dernère version) permettant de faire une photomosaïque (chaque pixel du modèle est remplacé par une photo en adaptant les couleurs).

Les sources sont là [http://boisson.homeip.net/source/](http://boisson.homeip.net/source/)

tu as les différentes versions prend la première ou peut être la seconde pour camllight.

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/6 "2016-02-21T13:06:53Z")

</div>

J’ai pas trop trop compris comment je dois m’en servir ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit") ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit")

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/7 "2016-02-21T13:06:55Z")

</div>

Tu as la bibliothèsque [ppm.ml](http://ppm.ml), regarde la fonction ppm\_\_mat2PPM…

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/8 "2016-02-21T13:06:57Z")

</div>

La fonction me sort un ppm, mais c’est pas l’image en fait.

J’ai essayé de relire ma «&nbsp;correction&nbsp;» de ppm.ml qui mettait le code en caml-light mais je pense pas avoir fais de bêtises ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")

Je laisse ci-joint mon code (avec le .ppm qui en sort)

[http://www.mediafire.com/?kc7g5a05xn0utvi](http://www.mediafire.com/?kc7g5a05xn0utvi)

> main.ml est ma fonction principale  
> ppm.ml est ton fichier que j’ai modifié pour camllight  
> plot.ml contient «&nbsp;plot : (float-\>float)-\>unit&nbsp;» qui trace une fonction float-\>float  
> Mario.ml est une fonction «&nbsp;dessine mario : unit&nbsp;» qui dessin un mario

Le .ppm qu’on voit est censé être un mario 😕

Cette après midi je vais essayer de lire attentivement chacun des bouts de ton code et de les comprendre, ça m’aidera je pense 😒

En tout cas merci de ton aide 😃

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 1:06 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/9 "2016-02-21T13:06:59Z")

</div>

Désolé c’est ma faute, une erreur toute bête ^^ (j’avais confondu create\_image avec get\_image)

Ça marche =D=D (je te joins le code au cas ou tu es intéressé par la traduction pour camllight.

En tout cas mille merci ! 😃😃😃😃

[http://www.mediafire.com/?doyl4yp1vo84dpe](http://www.mediafire.com/?doyl4yp1vo84dpe)

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 1:07 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/10 "2016-02-21T13:07:00Z")

</div>

Si tu avais pris la première ou la deuxième version de placeimage, tu aurais eu [ppm.ml](http://ppm.ml) pour camllight, placeimage était initialement en camllight… Cela dit la traduction n’est pas très longue…

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 1:07 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/11 "2016-02-21T13:07:01Z")

</div>

En fait placeimage m’a sorti des erreurs que je n’ai pas réussi à rectifier …

[code]#if ( vect\_length argv) = 5 then  
Entrée interactive:

> let motif = Ppm.charge\_PPM «&nbsp;/tmp/\_\_local&nbsp;» in  
> ^^^^^^^^^^^^^^  
> L’étiquette charge\_PPM n’est pas définie.[/code]

Et le code … je ne le comprends pas trop trop donc je ne voyais pas comment m’en servir ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think") .

> [@fran.b](#):
>
> Tu as la bibliothèsque ppm.ml, regarde la fonction ppm\_\_mat2PPM…

Suite à ça je me suis dis qu’en effet, je pouvais regarder directement dans le fichier ppm.ml

(et tu as raison, la traduction n’est pas une tâche difficile ni longue 😉 )

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 1:07 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/12 "2016-02-21T13:07:04Z")

</div>

Effectivement, tu as récupéré la version Ocaml. La version camllight est cellà: [boisson.homeip.net/source/placei … 0-1.tar.gz](http://boisson.homeip.net/source/placeimage_1.0-1.tar.gz)

---

<div class="post-metadata">

**Author:** ![Tristan.T](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/13edae/32.png) [@Tristan.T](https://www.debian-fr.org/u/Tristan.T)\
**Post date:** [Février 21, 2016, 1:07 UTC](https://www.debian-fr.org/t/ouvrir-un-clg/53290/13 "2016-02-21T13:07:04Z")

</div>

Oups 😊

Avec le nouveau fichier ça marche ![:023](https://www.debian-fr.org/uploads/default/original/1X/3c587556c0cc11389317c03a60788d77ceebd307.gif "OK")

Petit problème avec le makefile (qui ne rend rien 😕 , du coup pas de ppm.zi)

`tt@debian-tt:~/Bureau/placeimage-1.0$ make
rm *.zi *.zo *~
rm: impossible de supprimer « *.zi »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « *.zo »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « *~ »: Aucun fichier ou dossier de ce type
make: [clean] Erreur 1 (ignorée)
for i in placeimage; do if test -f $i; then rm $i; fi; done
`  
Mais pas un gros problème car en regardant le makefile je fais la commande : `camlc ppm.mli` et ça rend bien le ppm.zi

Pour placeimage il me sort une erreur assez particulière pour la derniere fonction (celle avec le if)

`La valeur globale ppm__mat2PPM est utilisée avant d'être définie.
Veuillez charger une implémentation du module ppm.`

D’ailleur ceci apparaît si je fais :

`#open "ppm";;
ppm__mat2PPM;;`

Mais après c’est sûrement moi qui ai fait une erreur ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")

Edit : Ok … Je me suis rendu compte que mat2PPM était reconnu et j’ai remplacé ppm\_\_mat2PPM par mat2PPM

J’ai cette erreur 😕

`convert.im6: unrecognized option `-stdlib' @ error/convert.c/ConvertImageCommand/2759.
Exception non rattrapée: Sys_error
                          "/tmp/__local.ppm: No such file or directory"
#`

Re-edit : En fait là je compilais avec le logiciel lincaml.  
Si j’utilise camlc ça ne rend pas d’erreur !

J’ai fais (comme le suggère le Makefile) :

```auto
camlc -custom unix.zo graphics.zo -lunix -lgraph -ccopt -L/usr/X11R6/lib -lX11 ppm.zo -o placeimage placeimage.ml
```

En tout cas ce fut très instructif … Merci ! 😃
