IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

Convertir un Int32 en 3 Int de 8 bits


Sujet :

Caml

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 8
    Points
    8
    Par défaut Convertir un Int32 en 3 Int de 8 bits
    Salut, j'ai un petit probléme ave le type Int32...
    je load une image dans un Bigarray.array2 (une matrice ) avec des int32
    qui corespondent au code RGB de chaque pixel.
    j'utilise Sdlvideo.get_pixel qui renvoie le (code rgb)int32, de chaque pixel et le probleme c'est que j'ai besoin d'un triplet (r,g,b) pour travailler sur le pixel
    donc voila sa serait sympas si quelqun pouvait me dire comment
    couper les 8 premiers bits du int32 pour le rouge , les 8 suivant pour le vert
    et les 8 derniers pour le bleu.
    Merci d'avance

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    À vérifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # let rgb_of col =
      (col lsr 16 land 0xFF,col lsr 8 land 0xFF,col land 0xFF);;
    val rgb_of : int -> int * int * int = <fun>
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    JMerci d'avoir repondu si vite , je vien d'essayer mais je vien de voir que je mettais mal exprimer je veux en fait les bit (1-8) (9-16) (17-24) , les 8 dernier j'en ai
    pas besoin c'est pour la transparence alpha
    j'ai essayer de compiler mais j une erreur que je comprend pas
    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
     
    let del_noise mat =
      for i=0 to Bigarray.Array2.dim1 mat - 1 do
        begin
          for j=0 to Bigarray.Array2.dim2 mat - 1 do
    	begin
    	  let rgb  = Bigarray.Array2.get mat i j in
              let (r,g,b)  =
                            (rgb lsr 16 land 0xFF,rgb lsr 8 land 0xFF,rgb land 0xFF) in    
    	  let grey = (0.299 *. (float_of_int r) +. 0.587 *. (float_of_int g) +. 0.114 *. (float_of_int b)) in
              let grey32 = Int32.of_float grey in
    	  Bigarray.Array2.set >merde ICI<mat i j grey32 ; 
    	end
          done;  
        end
      done;
      mat
    et en erreur du compilo j'aie....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    -*- mode: compilation; default-directory: "~/OCR/src/" -*-
    Compilation started at Thu Feb  7 23:50:07
     
    make ocr
    ocamlfind ocamlc -c -linkpkg -package sdl,sdl.sdlimage nsn_ocr.ml
    File "nsn_ocr.ml", line 22, characters 31-37:
    This expression has type int32 but is here used with type int
    make: *** [nsn_ocr.cmo] Erreur 2
     
    Compilation exited abnormally with code 2 at Thu Feb  7 23:50:07
    t

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir du JTextField.gettext() ent int
    Par itmak dans le forum Langage
    Réponses: 1
    Dernier message: 03/05/2008, 19h56
  2. comment convertir un string to un int
    Par ryoussef19 dans le forum Langage
    Réponses: 2
    Dernier message: 03/03/2008, 10h10
  3. Convertir une chaine quelconque en int
    Par PaladinFr dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 25/11/2006, 14h48
  4. [XSLT]Convertir une chaîne en float, int etc ... avec XSL
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/05/2006, 10h12
  5. [C#] convertir un nombre hexa en int
    Par linux dans le forum C#
    Réponses: 5
    Dernier message: 08/12/2005, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo