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 :
Ce qui me donne le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;;
Si je relance la boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Exception: Graphics.Graphic_failure "Xlib error: BadPixmap (invalid Pixmap parameter)".
Et cela fini par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception: Graphics.Graphic_failure "fatal I/O error".
Ne sachant plus quoi faire, je m'en remets à vos aides et suggestions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ocamlrun: ../../src/xcb_io.c:528: _XAllocID: Assertion `ret != inval_id' failed. Process caml-toplevel abandon (core dumped)
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.
Partager