OVH Cloud OVH Cloud

ouvrir une image depuis le web...

7 réponses
Avatar
Fabien Gouverneur
Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml dans
un textbox, maintenant ce que je voudrais faire, c'est pouvoir ouvrir une
image jpg provenant d'un site web de ma conception dans un picture box sans
avoir à télécharger le fichier lui même, en d'autre termes récupérer le flux
binaire de l'image et le balancer dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me donner ?
Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml, j'obtiend dans
mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci

7 réponses

Avatar
Fabien Gouverneur
"christophe-pasde<> @wanadoo.fr>" <"christophe-pasde<> a écrit dans le
message de news:42a6e46e$0$25062$
Salut,

Connais pas la nature des flux XML mais tu peux utiliser la GflSdk située


à
www.xnview.com qui te permet de récupérer une image sur le flot.

Christophe



Fabien Gouverneur a écrit :

> Bonjour à tous !
>
> Voici mon probleme :
> J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml


dans
> un textbox, maintenant ce que je voudrais faire, c'est pouvoir ouvrir


une
> image jpg provenant d'un site web de ma conception dans un picture box


sans
> avoir à télécharger le fichier lui même, en d'autre termes récupérer le


flux
> binaire de l'image et le balancer dans un picture box.
>
> Quelqu'un à un bout de code à me fournir ou une explication à me donner


?
> Que je puisse terminer mon module.....
>
> Car si j'utilise le même code que pour la source du flux xml, j'obtiend


dans
> mon textbox un texte totalement ésotérique.....
>
> Une idée siou plait
> merci
>


Le flux xml en question est en fait un simple fichier texte, et dans mon
sours en remplaçant l'appel au fichier xml en question je passe en parametre
le lien vers mon image jpg, avec le getdata de winsock, je récupere un flux
de données en format texte, c'est en fait ce flux que je voudrait redirigé
vers ma picture box
Avatar
christophe-pasde
Salut,

Connais pas la nature des flux XML mais tu peux utiliser la GflSdk située à
www.xnview.com qui te permet de récupérer une image sur le flot.

Christophe



Fabien Gouverneur a écrit :

Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml dans
un textbox, maintenant ce que je voudrais faire, c'est pouvoir ouvrir une
image jpg provenant d'un site web de ma conception dans un picture box sans
avoir à télécharger le fichier lui même, en d'autre termes récupérer le flux
binaire de l'image et le balancer dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me donner ?
Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml, j'obtiend dans
mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci




Avatar
ng
Salut,

Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml
dans un textbox, maintenant ce que je voudrais faire, c'est pouvoir ouvrir
une image jpg provenant d'un site web de ma conception dans un picture box
sans avoir à télécharger le fichier lui même, en d'autre termes récupérer
le flux binaire de l'image et le balancer dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me donner ?
Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml, j'obtiend
dans mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci



Le plus simple : tu télécharges ton images avec winsock, tu mets ds un
fichier temporaire, tu fais un loadpicture() et tu détruits le fichier.

Sinon il faut créer un DIB avec les données recues. C'est faisable mais un
peu plus comliqué, il faudra manipuler les APIs GDI.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
Fabien Gouverneur
"ng" a écrit dans le message de
news:
Salut,

> Bonjour à tous !
>
> Voici mon probleme :
> J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml
> dans un textbox, maintenant ce que je voudrais faire, c'est pouvoir


ouvrir
> une image jpg provenant d'un site web de ma conception dans un picture


box
> sans avoir à télécharger le fichier lui même, en d'autre termes


récupérer
> le flux binaire de l'image et le balancer dans un picture box.
>
> Quelqu'un à un bout de code à me fournir ou une explication à me donner


?
> Que je puisse terminer mon module.....
>
> Car si j'utilise le même code que pour la source du flux xml, j'obtiend
> dans mon textbox un texte totalement ésotérique.....
>
> Une idée siou plait
> merci

Le plus simple : tu télécharges ton images avec winsock, tu mets ds un
fichier temporaire, tu fais un loadpicture() et tu détruits le fichier.

Sinon il faut créer un DIB avec les données recues. C'est faisable mais un
peu plus comliqué, il faudra manipuler les APIs GDI.




C'est une solution qui me conviens un peu plus, mais le fichier temporaire
me dérange un peu, peu tu me donner des éléments pour creuser ta deuxieme
solution ?
Merci
Avatar
Fred
Dans son message 42a6bb1a$0$25838$
Fabien Gouverneur nous dit :

Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux
xml dans un textbox, maintenant ce que je voudrais faire, c'est
pouvoir ouvrir une image jpg provenant d'un site web de ma conception
dans un picture box sans avoir à télécharger le fichier lui même, en
d'autre termes récupérer le flux binaire de l'image et le balancer
dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me
donner ? Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml,
j'obtiend dans mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci



Bonsoir,
Il est probable que ton texte ésotérique soit ton fichier binaire codé en
base 64.
Vérifie s'il ne contient que les caractères a..z, A..Z, 0..9, + et /
(éventuellement des = à la fin pour compléter à un nombre multiple de 4).
Reste à le reconvertir en octets.



--
Fred
Avatar
christophe-pasde
Salut

Si j'ai bien pigé le winsock te permet de recevoir un fichier image.
Comme te le dis NG le plus simple est de créer un DIB sur la base de ce
que winsock te donne (qui amha est un DIB).
Concernant les DIBs c'est effectivement un peu compliqué à gerer.
1) Quels sont les formats possibles de l'image (jpeg,tif etc ...) ?

Si c'est du BMP et du jpg tu peux faire avec les APIs et VB.
L'autre solution qui marche pour de nombreux format comme tif et PNG
c'est d'utiliser la GFlSdk pour lire le fichier.

2) Ne pas créer de fichier temporaire implique que tu récupéres bien un
DIB dans ton winsock. Il te faut soit un pointeur (enfin l'adresse) du
fichier et sa taille, et ensuite il te faut écrire pour cela les
fonctions qui récupère respectivement le BMIHeader,la table de couleur
si elle existe et la matrice de donnée.

Enfin pourquoi ne pas developper une interface coté serveur qui lit
l'image (utilise gflsdk et 40 formats dispo) ensuite fournit à winsock
le dib (franctionné ou non) qui ensuite et lu coté client.
Comme ça tu sais exactement ce que tu envoies et ce que tu reçois.


Christophe


Fabien Gouverneur a écrit :
"ng" a écrit dans le message de
news:

Salut,


Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml
dans un textbox, maintenant ce que je voudrais faire, c'est pouvoir





ouvrir

une image jpg provenant d'un site web de ma conception dans un picture





box

sans avoir à télécharger le fichier lui même, en d'autre termes





récupérer

le flux binaire de l'image et le balancer dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me donner





?

Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml, j'obtiend
dans mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci



Le plus simple : tu télécharges ton images avec winsock, tu mets ds un
fichier temporaire, tu fais un loadpicture() et tu détruits le fichier.

Sinon il faut créer un DIB avec les données recues. C'est faisable mais un
peu plus comliqué, il faudra manipuler les APIs GDI.





C'est une solution qui me conviens un peu plus, mais le fichier temporaire
me dérange un peu, peu tu me donner des éléments pour creuser ta deuxieme
solution ?
Merci




Avatar
christophe-pasde
RE,

Je viens de regarder ici:
http://www.frameip.com/vb_mode_tcp_udp/#1_-_Le_composant_Winsock_en_VB

(frameip ça a l'air pas mal)

Et je crois que le mieux est de t'assurer de ce que tu envoies au client
depuis le serveur.

Christophe

christophe-pasde<> a écrit :

Salut

Si j'ai bien pigé le winsock te permet de recevoir un fichier image.
Comme te le dis NG le plus simple est de créer un DIB sur la base de ce
que winsock te donne (qui amha est un DIB).
Concernant les DIBs c'est effectivement un peu compliqué à gerer.
1) Quels sont les formats possibles de l'image (jpeg,tif etc ...) ?

Si c'est du BMP et du jpg tu peux faire avec les APIs et VB.
L'autre solution qui marche pour de nombreux format comme tif et PNG
c'est d'utiliser la GFlSdk pour lire le fichier.

2) Ne pas créer de fichier temporaire implique que tu récupéres bien un
DIB dans ton winsock. Il te faut soit un pointeur (enfin l'adresse) du
fichier et sa taille, et ensuite il te faut écrire pour cela les
fonctions qui récupère respectivement le BMIHeader,la table de couleur
si elle existe et la matrice de donnée.

Enfin pourquoi ne pas developper une interface coté serveur qui lit
l'image (utilise gflsdk et 40 formats dispo) ensuite fournit à winsock
le dib (franctionné ou non) qui ensuite et lu coté client.
Comme ça tu sais exactement ce que tu envoies et ce que tu reçois.


Christophe


Fabien Gouverneur a écrit :

"ng" a écrit dans le message de
news:

Salut,


Bonjour à tous !

Voici mon probleme :
J'ai réussi avec le contrôle winsock à afficher la source d'un flux xml
dans un textbox, maintenant ce que je voudrais faire, c'est pouvoir






ouvrir

une image jpg provenant d'un site web de ma conception dans un picture






box

sans avoir à télécharger le fichier lui même, en d'autre termes






récupérer

le flux binaire de l'image et le balancer dans un picture box.

Quelqu'un à un bout de code à me fournir ou une explication à me donner






?

Que je puisse terminer mon module.....

Car si j'utilise le même code que pour la source du flux xml, j'obtiend
dans mon textbox un texte totalement ésotérique.....

Une idée siou plait
merci




Le plus simple : tu télécharges ton images avec winsock, tu mets ds un
fichier temporaire, tu fais un loadpicture() et tu détruits le fichier.

Sinon il faut créer un DIB avec les données recues. C'est faisable
mais un
peu plus comliqué, il faudra manipuler les APIs GDI.





C'est une solution qui me conviens un peu plus, mais le fichier
temporaire
me dérange un peu, peu tu me donner des éléments pour creuser ta deuxieme
solution ?
Merci