Plantage du module Graphics
Bonsoir à tous,
pour un projet j'utilise le module Camlimages, mais je rencontre un problème que je mets en évidence dans le code ci-dessous.
Pour celà, tout bêtement, je charge une image png, puis je l'affiche une centaine de fois, et j'obtiens une jolie erreur du module Graphics.
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
#load "graphics.cma";;
#use "topfind";;
#load "camlimages/camlimages.cma";;
#load "lablgtk2/lablgtk.cma";;
#require "camlimages";;
open Graphics;;
open Images;;
open Graphic_image;;
let charge_image chemin =
let temp = Images.load chemin [] in
Graphic_image.array_of_image temp
;;
let affiche_im im =
let temp = make_image im in
Graphics.draw_image temp 0 0
;;
let im = charge_image "/home/engu/tux.png";;
for i = 0 to 100 do
open_graph "";
affiche_im im;
close_graph ();
done;; |
Ce qui me donne le message d'erreur :
Code:
1 2 3
|
Exception:
Graphics.Graphic_failure "Xlib error: BadPixmap (invalid Pixmap parameter)". |
Si je relance la boucle :
Code:
1 2
|
Exception: Graphics.Graphic_failure "fatal I/O error". |
Et cela fini par
Code:
1 2 3 4
|
ocamlrun: ../../src/xcb_io.c:528: _XAllocID: Assertion `ret != inval_id' failed.
Process caml-toplevel abandon (core dumped) |
Ne sachant plus quoi faire, je m'en remets à vos aides et suggestions.
Merci d'avance,
Engu
EDIT : Précision (il me semble) intéressante :
- Si j'enlève "affiche_im im;" dans la boucle, le programme ne plante plus.
- Si je supprime les "open_graph "";" et "close_graph ();" de la boucle et que j'ouvre le graph au préalable (la boucle ne contient plus que "affiche_im im;"), le programme ne plante plus.