Winforms webbrowser control and loading image directly from stream

I have a requirement where I have to load images in windows application webbrowser control and rather loading them from physical location with path. I have to load them from stream directly(from database).

After searching I found in web we can use handler for this however I am not sure how I can do this in winforms or we can say how to load generic handler in winforms webbrowser control.

Kindly suggest.
Thanks in advance.
dineshwinsAsked:
Who is Participating?
 
käµfm³d 👽Commented:
however it has been mentioned that it is restricted to certain image size.
If you are using IE 8 or earlier, then there is a 32 KB limit on the data in the image. All other browsers, including IE 9 and above, do not have a restriction.
0
 
käµfm³d 👽Commented:
Might it be easier to write the images to a temporary file, or are you not permitted to do that?
0
 
dineshwinsAuthor Commented:
Yes, Basically we have to create multiple thumbnails of single image may be 20 in one page, hance saving will adversily effect the performance so I am looking for any solution by which we wont save the image physically and retrive and display directly from stream. Is there any way for doing this in winforms application
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
käµfm³d 👽Commented:
One way you could do this would be to use data URIs. Basically, you base64-encode your image data and then use a special URI to disseminate the image. Following is a crude example. I am reading the binary data from a file, but you should be able to conceptualize this data coming from a DB instead.

using System;
using System.Windows.Forms;

namespace _27484075
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            byte[] data = System.IO.File.ReadAllBytes("example.png");
            string encoded = Convert.ToBase64String(data);
            string url = "<html><body><img src=\"data:image/png;base64," + encoded + "\" /></body></html>";

            this.webBrowser1.DocumentText = url;
        }
    }
}

Open in new window


Which, using this image:

Source Image
...gives something like this:

Results Screenshot
0
 
käµfm³d 👽Commented:
Here's what the source of the resulting page looks like:

<html>
    <body>
        <img src="data:image/png;base64,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" />
    </body>
</html>

Open in new window

0
 
dineshwinsAuthor Commented:
thanks for the information.
I will implement this and will check the formats however during searching I have seen this, however it has been mentioned that it is restricted to certain image size. Is this the case and what if i have to use large image. Can you please suggest
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.