[Ocaml-Sdl] Transformation d'une image en nuance de gris

Transformation d'une image en nuance de gris [Ocaml-Sdl] - Langages fonctionnels - Programmation

Marsh Posté le 10-02-2008 à 17:24:27    

Bonjour a tous et desole d'avance pour les accents, je suis en qwerty.
 
J'essaye de coder une fonction de transformation d'une image en nuance de gris qui me sera utile pour un projet. J'utilise l'algo tout bete qui transforme toutes les composantes de couleurs en la moyenne des trois composantes initiales (gris ssi r=g=b).
 
Le probleme que j'ai est le suivant, ma fonction fonctionne parfaitement bien avec un jpg ou un png mais me renvoit un segment fault avec un bmp (image 24 bits dans les trois cas) et je vois vraiment pas pourquoi.
 
Le code qui foire :
 

Code :
  1. let_main() =
  2.   Sdl.init ['VIDEO];
  3.   let image = "image.jpg ou png ou bmp" in
  4.   let surface = Sdlloader.load_image image in
  5.   let x,y,z = Sdlvideo.surface_dims surface in
  6.   let i = ref 0 in
  7.   let j = ref 0 in
  8.      while (!j <= y) do
  9.        while (!i <= x)do
  10.        let (r,g,b) = Sdl.get_pixel_color surface ~x:!i ~y:!j in
  11.        let average = (r+g+b)/3 in
  12.        Sdlvideo.put_pixel_color surface ~x:!i ~y:!j (average,average,average);
  13.        i := !i + 1;
  14.        done;
  15.      i := 0;
  16.      j := !j + 1 ;
  17.      done;
  18.   Sdlvideo.save_BMP surface "resultat.bmp";
  19.   Sdl.quit()
  20. let _ = main()


 
Help  :sweat:

Reply

Marsh Posté le 10-02-2008 à 17:24:27   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed