ImageList et Webbrowser

cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 - 26 juin 2012 à 14:23
 Utilisateur anonyme - 18 juil. 2012 à 18:12
Bonjour,

je voudrai afficher une image provenant d'une ImageList (ou PictureBox) dans un Webbrowser. Le soucis n'est pas le code HTML mais le chemin de l'image. Quelqu'un aurait-il une piste à me conseiller ?

Merci d'avance.

6 réponses

Utilisateur anonyme
26 juin 2012 à 18:38
Bonsoir,

Je n'en suis pas certain mais il semble que l'appel d'une image par code HTML nécessite la présence physique de celle-ci. Donc, à mon avis, tu n'as pas d'autre choix que d'écrire l'image sur le disque.
Mais je peux me tromper.

Pour cela, tu peux te servir de la méthode Save, valable aussi bien pour un Imagelist que pour un Picturebox.
ImageList1.Images.Item(0).Save("monimage.jpg", Imaging.ImageFormat.Jpeg)
0
cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 3
27 juin 2012 à 16:47
Merci pour ta réponse mais mon but final est de ne pas passer par des fichiers. Je pense que c'est possible avec du stream mais je n'arrive pas à ajouter les images en stream.

Je suis tombé sur cette page: documentstream

Et dans note:
Utilisez cette propriété pour charger une page Web dans le contrôle WebBrowser à partir d'un objet Stream. Par exemple, vous pouvez utiliser cette propriété pour charger des pages Web à partir d'une base de données ou d'un fichier de ressources. Lorsque vous définissez cette propriété, le contrôle WebBrowser navigue automatiquement vers l'URL about:blank avant de charger le texte spécifié. Cela signifie que les événements Navigating, Navigated et DocumentCompleted se produisent lorsque vous définissez cette propriété, et la valeur de la propriété Url n'est plus significative.

Pour accéder au contenu d'une page Web sous la forme d'une chaîne, utilisez la propriété DocumentText. Vous pouvez également accéder au contenu de la page à l'aide du modèle objet de document HTML (DOM) via la propriété Document.



Des liens ou des idées, je suis toujours preneur.
0
Utilisateur anonyme
27 juin 2012 à 18:23
Intéressant ton lien. De mon côté, j'ai cherché aussi et il se trouve que l'on peut transformer un tableau de byte en base64 et l'insérer dans une balise html.
Tu peux suivre l'exemple ci-dessous pour te faire une idée :
'lecture de l'image et remplissage d'un tableau (data)
'ici je prend l'image sur le disque mais elle peut etre stockée dans tes ressources par exemple
Dim data() As Byte = IO.File.ReadAllBytes("monimage.jpg")
'code HTML avec balise image dans laquelle on insère le tableau data converti en Base64
Dim datastr As String = "<html>blablabla
</html>"
'création d'un webbrowser
Dim wb As New WebBrowser
'ajout au formulaire
Me.Controls.Add(wb)
'envoi du code html au webbrowser
wb.DocumentText = datastr
0
Utilisateur anonyme
27 juin 2012 à 18:41
Je n'ai répondu qu'à la moitié de la question.
Pour extraire ton image d'un imagelist tu peux passer par un memorystream.
Voici le code complet :
Dim ms As New IO.MemoryStream
ImageList1.Images.Item(0).Save(ms, Imaging.ImageFormat.Jpeg)
Dim data(Convert.ToInt32(ms.Length - 1)) As Byte
ms.Position = 0
ms.Read(data, 0, data.Length)
'code HTML avec balise image dans laquelle on insère le tableau data converti en Base64
Dim datastr As String = "<html>blablabla
</html>"
'création d'un webbrowser
Dim wb As New WebBrowser
'ajout au formulaire
Me.Controls.Add(wb)
'envoi du code html au webbrowser
wb.DocumentText = datastr
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Trim Messages postés 60 Date d'inscription samedi 4 mars 2006 Statut Membre Dernière intervention 4 septembre 2023 3
18 juil. 2012 à 18:06
Encore merci pour ton aide et désolé pour cette réponse tardive.

Oui, j'ai déjà pensé à cette méthode pour les images, mais le problème est un peu plus corsé lorsque la page web contient des feuilles CSS, du javascript ou même des frames.
Je cherche toujours une solution un peu plus simpliste (je te tiens au courant ;), mais j'ai toujours rien pour le moment.

Enfaite le but du bout de code, c'est que je puisse lire une page web situé dans une archive sans la décompressé (juste avec des DocumentStream par exemple).

Je suis encore preneur de d'autres idées :)
0
Utilisateur anonyme
18 juil. 2012 à 18:12
J'ai pourtant répondu à ta question. Si maintenant, tu la changes en cours de route, qu'y puis-je ?
0
Rejoignez-nous