[VB6] Convertir un tableau de byte en stdpicture

Résolu
badmike95 Messages postés 45 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 20 mai 2012 - 4 sept. 2010 à 19:54
badmike95 Messages postés 45 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 20 mai 2012 - 7 sept. 2010 à 11:19
Bonjour,
Je souhaiterais comme le dit le titre convertir un tableau de byte en SdtPicture. Mais voila, petite précision : le tableau de byte contient une image au format png et je ne connais pas de méthode me permettant de faire une telle conversion.

J'ai essayé celui-la qui se démarque beaucoup de tous ceux que j'ai trouvé mais après vérification, cette méthode ne fonctionne que si l'image est au format bmp or je souhaite absolument le faire avec un fichier au format png.
La librairie PaintX est capable de convertir un fichier png en SdtPicture sans problèmes, seulement voila on ne peut le faire que via un fichier et non depuis un tableau (que je sache)..

J'aurais pu faire comme ceci :
    Filename = "path/to/file.png"
    FF = FreeFile
    Open Filename For Binary Access Write As #FF
        Put #FF, , PNGBytes()
    Close #intNextFreeFile

Puis utiliser la librairie PaintX pour lire le fichier avant de le supprimer, seulement voila je ne souhaite également pas l'écrire et directement le lire depuis le tableau de bytes (ici PNGBytes).

Donc voila, je cherche depuis un moment une méthode mais en vain malheureusement. J'imagine que, sachant qu'il est possible de faire cela via un fichier, il devrait y avoir une solution dans le cas où il serait contenu dans un tableau de bytes.
C'est pourquoi je fais appel à vous en espérant que vous ayez une solution à m'accorder.
Merci d'avance pour toute vos réponses en tous cas;)

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 sept. 2010 à 10:23
Ca existe, c'est assez simple (voir sources de EBArtSoft)

le soucis là est que ton image est en PNG...

peut etre en passant par un objet Stream, GDI+ saura alors surement le charger...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
badmike95 Messages postés 45 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 20 mai 2012
5 sept. 2010 à 17:50
Petit Up.
Après d'autres recherches, j'ai fini par trouver quelque chose d'intéressant :
[url]http://www.dynamsoft.com/help/TWAIN/WebTwain/method%20LoadImageFromBytes.htm/url

J'ai donc essayé d'exploiter la librairie qu'ils utilisent (je ne suis d'ailleurs pas sûr d'avoir le droit de l'utiliser après ces 30 jours d'essai) mais bon, bien que ça fonctionne il semblerait que l'image ne soit exploitable que via le contrôle en relation avec la librairie et donc il ne permet pas ensuite la conversion vers StdPicture.. à moins que je me sois mal documenté.
La librairie semble principalement utilisé pour scanner des images donc hormis cette fameuse fonction "LoadImageFromBytes" le reste ne m'est pas vraiment utile ^^' mais bon, ça montre en tous cas que c'est bien possible et qu'il doit y avoir une méthode équivalente à PaintX et qui fonctionne comme ce "LoadImageFromBytes".
Merci d'avance.

Note : Petite erreur dans le message précédent, ce n'est pas Close #intNextFreeFile mais bien Close #FF, un petit oublie.
0
badmike95 Messages postés 45 Date d'inscription vendredi 18 novembre 2005 Statut Membre Dernière intervention 20 mai 2012
7 sept. 2010 à 11:19
Effectivement, je viens d'essayer cette méthode et ça fonctionne, merci ;)
0
Rejoignez-nous