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?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
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
Angular Fundamentals

Learn the fundamentals of Angular 2, a JavaScript framework for developing dynamic single page applications.

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
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.