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

VBScript Discussion :

Récuperer la valeur rgb des pixels d'un gif


Sujet :

VBScript

  1. #1
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut Récuperer la valeur rgb des pixels d'un gif
    Bonjour à tous,

    je cherche à récuperer la valeur de chacun des pixels d'une image gif à l'aide d'un code VBS.

    Je sais qu'il existe la fonction LoadPicture(img) qui crée un handle de l'image,
    mais je ne sais pas comment récuperer un pixel après l'autre pour écrire leur valeur ligne par ligne dans un fichier .txt.

    Si quelqu'un a une idée, je suis preneur. Pour le moment je le fais en Python
    mais ça m'arrangerait de le faire en VBS.

    Je précise que mon gif est petit (87 x 24)

    D'avance merci pour vos suggestions et commentaire.



  2. #2
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonjour,
    je ne crois pas qu'il soit possible de le faire directement sur le fichier GIF en vbs.
    La solution serait d'avoir enregistré une copie texte de la lecture binaire du fichier à l'aide d'un autre langage: vb, vba, python, ...
    En ce moment tu pourras facilement lire ce texte avec FSO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim fso, MyFile, i
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile("c:\testfile.txt", false)
    i = MyFile.Read(3)
    MyFile.Close

  3. #3
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Merci,

    pour ta réponse NVCFRM.

    En python j'ai déjà tout le traitement qui fonctionne grâce à PIL, en Autoit aussi d'ailleurs.

    Il doit y avoir une solution en VBS, peut-être en travaillant litérallement sur la structure du fichier GIF, en récupérant les octets intèressant, sans traitement graphique.


  4. #4
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonsoir,

    une idée de code m'est apparue que tu peux examiner pour la développer.
    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
     
        Dim FSO, File, TextStream
        Dim rByte()
        Dim i, s, b
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set File = FSO.GetFile("Path")
        ReDim rByte(File.Size + 1)
        Set TextStream = File.OpenAsTextStream(1)
     
        Do While Not TextStream.AtEndOfStream
           s = TextStream.Read(1)
           b = Asc(s)
           i = i + 1
           rByte(i) = b
        Loop
       TextStream.Close

  5. #5
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Excellent,

    c'est exactement à quelque chose comme ça que je pensais.

    Maintenant je vais essayer de décortiquer la structure pour voir à partir d'où
    il faut que je commence à traiter l'info. Ça devrait être assez simple vu que j'ai déjà des modèles de la structure (AUTOIT et PYTHON).

    Je te tiens au courant et si cela fonctionne avec vbs je publierai un sujet sur mes tests.


    Merci encore NVCfrm

    A+

  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    En fait c'est plus compliqué que cela, juste avec la valeur ascii su caractère qu'il y a dans le fichier, je n'arrive à rien. Le gif étant un format qui passe par une compression.

    Je continue mes recherches


  7. #7
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonsoir,

    c'est un peu ce que je me disais. à moins de ne passer par des librairies tierces et avoir une certaine connaissance des spécifications du format GIF.
    Connaissant très peu sur la manipulation de tels fichiers je crains ne pouvoir servir à grand chose.
    Je ne sais pas si la bibliothèque WIA (Windows Image Acuisition)..., oui ça pourrait bien te renvoyer dans les propriétés des données utiles du fichier.
    Lien utile: http://silkyroad.developpez.com/VBA/...geAcquisition/

  8. #8
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Merci,

    je vais jetter un oeil

    sympa



    10 mn plus tard :

    On est sur la bonne voie Bravo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set objImage = CreateObject("WIA.ImageFile")
    objImage.LoadFile "C:\image.gif"
    Wscript.Echo "Width: " & objImage.Width
    Wscript.Echo "Height: " & objImage.Height
    ce simple code retourne les dimension d'une image (applicable à gif, jpeg,png...)

    Reste plus qu'a faire le code qui boucle sur objImage en Y puis X et qui retourne chaque pixel.

    On touche au but....



Discussions similaires

  1. Récupérer la valeur alpha des pixels
    Par slim_java dans le forum 2D
    Réponses: 6
    Dernier message: 03/08/2009, 23h11
  2. Réponses: 6
    Dernier message: 02/07/2009, 15h25
  3. Recuperer une image a partir des pixels RGB
    Par Battosaiii dans le forum Langage
    Réponses: 1
    Dernier message: 29/06/2006, 11h37
  4. VBA Excel , récuperer la valeur des options buttons
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2006, 14h25
  5. valeur RGB d'un pixel
    Par Mobius dans le forum Windows
    Réponses: 5
    Dernier message: 12/10/2005, 15h01

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