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

Macros et VBA Excel Discussion :

Extraire l'image .JPEG encapuslée dans une pièce .CATPart (CATIA V5) [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #61
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    pour passer tout les fichiers ".cat*"modifier le dir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
     Dim file As Variant, i As Long
       file = Dir(ThisWorkbook.Path & "\*.CAT*")
       While (file <> "")
          i = i + 1
              r = extract_image_catiapart2(file, i)
               file = Dir
      Wend
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #62
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re version avec l'object xml
    bonjour a tous
    j'ai trouver comment arriver au résultat avec l'idée de rdurupt
    c'est a dire a travailler avec le code hexa plutôt que binaire

    code a optimiser!! mais fonctionnel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Const Deb = "ffd8ffe0": Const Fin = "ffd9"
    Dim code As String
    code = Deb & Split(EncodeBase32("C:\Users\polux\Desktop\Part2.CATPart"), Deb)(1) 'on coupe le code hexa a partir du debut jpg "ffd8ffe0"
    indexfin = UBound(Split(code, "ffd9")) ' on cherche la derniere fin
    apres = Split(code, Fin)(indexfin) 'récupere ce qui il a apres la derniere fin
    code = Replace(code, apres, "") & Fin 'on remplace le apres obtenu par rien !!!
    Debug.Print code
    r = Base32tofichier(code, "C:\Users\polux\Desktop\mon image.jpg") 'on réécrit l'image avec l'object (base32tofichier)
    End Sub
    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
     Function EncodeBase32(fichier) As String
    Dim OBJstream, BB() As Byte, ok As Boolean, i As Long, f As Long, fini As Long
        Dim objXML As Object
        Dim objNode As Object
       Set OBJstream = CreateObject("ADODB.Stream")    'object utilisé ADODB stream
        OBJstream.Open: OBJstream.Type = 1    ' open with no arguments makes the stream an empty container
        OBJstream.LoadFromFile (fichier)    'on load le fichier dans l'object
        BB = OBJstream.Read()    ' on prend directement tout le paquet
     
         Set objXML = CreateObject("MSXML2.DOMDocument")
        Set objNode = objXML.createElement("ROOT")
        objNode.DataType = "bin.hex"
        objNode.nodeTypedValue = BB
        EncodeBase32 = objNode.Text
        Set objNode = Nothing
        Set objXML = Nothing
    End Function
    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
    Function Base32tofichier(ByRef strData As String, chemin As String)    ' As Object
        Dim objXML As Object    '.DOMDocument
        Dim objNode As Object    'MSXML2.IXMLDOMElement
        Dim a() As Byte
        Dim Buffer() As Byte, intFileNumber
        Set objXML = CreateObject("MSXML2.DOMDocument")
        Set objNode = objXML.createElement("toto")
        objNode.DataType = "bin.hex"
        objNode.Text = strData
        a = objNode.nodeTypedValue
        Set objNode = Nothing
        Set objXML = Nothing
        '///////////////////////////////////
        intFileNumber = FreeFile
        Open chemin For Binary As #intFileNumber
        Put #intFileNumber, , a
        'GetBinaryData = Buffer
        Close #intFileNumber
     
    End Function
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #63
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    pour commencer une optimisation il faudrait vérifier toute les fins et donc ce qui suit chaque fin pour trouver celle qui est la bonne
    donc pour la fin ca doit être "ffd9xxxx"

    ensuite les splits pourront se faire dans encode32
    ensuite puisque l'object et le même dans base32tofichier en utilisant l'inverse a savoir le nodetext et le nodetypevalue
    le faire directement dans encode32
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #64
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    c'est bon je l'ai trouvé!! je crois
    c'est "ffd9ffd8ffe0"
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #65
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Non, non, non, non et renon !

    J'ai déjà mit le lien sur la signature des fichiers JPEG.
    Le début c'est FFD8FFE0 ça ok.
    Mais le FFD9 c'est le marker de fin !

    Si tu trouve un cas de FFD9FFD8 c'est que tu est en présence d'une autre image suis, qui peut être intégrer dans l'image global car le JPEG peut contenir des miniature intégrée.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #66
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui je sais pour les miniature avec WIA je me sert de ce principe pour récupérer la miniature d'une image

    c'est grave si on ne met pas la miniature ???

    après sur la 7 Emme" surf.catpart " j'ai fait le test et on est toujours a 311 kilos

    voila les 3 fins qu'on trouve pour part2.catpart
    'ffd9ffd8ffe000
    'ffd97fc7f2acaa
    'ffd94e11000000
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #67
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    entendons nous bien !!

    ta logique c'est le 1 er "255,216" soit en hexa "ffd8ffe0" pour le debut et le dernier "255,217" soit en hexa "ffd9" pour la fin
    si c'est cela alors l'image fait bien 311 kilos c'est pas une erreur !!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #68
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    FFD8FFE0 => 255,216,255,224
    Et en effet la fin serais bien le dernier FFD9 SAUF si on trouve un autre FFD8FFE0 alors là c'est qu'il y a deux images distinctes
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #69
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oui j'avais compris javais abrégé

    ta logic c'est bien ca hein "255,216,255,224" soit "ffd8ffe0" pour début et le dernier 255,217 soit ffd9 c'est bien ca hein!!! ?????

    heu...!!!!
    Et en effet la fin serais bien le dernier FFD9 SAUF si on trouve un autre FFD8FFE0 alors là c'est qu'il y a deux images distinctes
    et oui je suis têtu mais je pense être logique

    si tu dis que si il y a plusieurs fois ffd8ffe0 il y a plusieurs image

    alors si je trouve ffd9ffd8ffe0 c'est que la!!! on a la fin de la premiere et le debut de l'autre et non la miniature de l'image

    ce qui me fait penser que en fait quand tu dis que l'image fait moins de 3 kilos alors en fait tu dois récupérer la miniature et non l'image comme je le fait avec WIA

    dans le cas contraire pour être sur de récupérer l'image il faudrait tester avant ffd8ffe0 si il y a pas ffd9 pour être sur de pas chopper la miniature a la place de l'image car de fois le "ffd9ffd8ffe0" est le premier !!!!!!

    et comme ffd9 est sensé etre la fin et que le poids est trop lourd selon toi alors encore une fois ta logique n'est pas bonne

    en tout cas si tu a raison sur ce point ton principe de début et fin n'est pas bon

    il faut te décider sur ta logique
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #70
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ce n'est pas ma logique.....
    C'est la description d'un JPEG dans les documentations.....
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  11. #71
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    oui je sais je me suis renseigné sur wiki
    mais alors dans notre principe de deut et fin on a un soucis selon les catpart

    exemple si l'on a

    "ffd8ffe0xxxx.....ffd9ffd8ffe0.............ffd9a7c0...........ffd9b5d8"

    ou

    "ffd8ffe0xxxx.....ffd9..........ffd8ffe0.............ffd9a7c0...........ffd9b5d8"

    dans ton principe il est impossible de cibler l'image ou même la miniature tu comprends ce que je veux dire

    dans ces deux exemples si je prend le 2 eme ffd8 dans l'un j'ai la miniature dans l'autre l'image n°2

    pour être sur il faudrait faire non pas 2 test sur debut et fin mais 4

    tester ffd8 et ce qu' il ya avant :si ffd9 c'est une miniature sinon c'est une autre image et pareil inversement pour ffd9 si il ya après " ffd8ffe0" alors ffd9 est la fin de la miniature

    en tout cas le principe n'est pas bon pour tout les catpart
    avec le principe que l'on utilise il y a des ratés forcement

    après une image de 300 kilos n'est pas rédhibitoire hein!!!c'est un peu gros pour du 100X110 mais bon
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.
Page 4 sur 4 PremièrePremière 1234

Discussions similaires

  1. Extraire coordonnées entre deux points dans une image
    Par Pg043 dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 16/01/2009, 09h35
  2. Réponses: 6
    Dernier message: 21/09/2006, 17h33
  3. Etirer une image de fond dans une cellule
    Par dreamanoir dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 13/07/2005, 14h39
  4. Réponses: 4
    Dernier message: 03/05/2005, 09h03
  5. Réponses: 2
    Dernier message: 19/11/2004, 08h54

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