codemirror
codemirror

Reputation: 3582

get image from web service and show on Winforms

i m developing a C# Window Application which uses web service as it's back end, how to get image from specified URL: the image on server is in JPEG Format

var client = new RestClient();
client.BaseUrl = "http://www.*****.com/images/12345.jpg";
var request = new RestRequest();
IRestResponse response = client.Execute(request);

Upvotes: 1

Views: 5147

Answers (2)

codemirror
codemirror

Reputation: 3582

Using RestSharp I did it this Way

var client = new RestClient();
client.BaseUrl = "http://www.abcd.com/image1.jpg";
var request = new RestRequest();
picturebox1.Image = new Bitmap(new MemoryStream(client.DownloadData(request)));

Showing Image at Picture Box

Upvotes: 2

Mark McGinty
Mark McGinty

Reputation: 756

If the client has the image URL, why not just use HTTP to download it? Or are you saying that the images will always reside on the same server that the WebService is running on, and that the WebService method should accept a URL, translate it to a local path, and return the image as a byte array?

We have a method of our WSDL WebService that does about the same thing, we don't include the protocol and host portions of the URL (they'd be redundant.)

[WebMethod]
public byte[] GetPicture(string ImageURL)
{
    if (ImageURL.StartsWith("http"))
            return new byte[0]; 
    string tmp = System.Web.Hosting.HostingEnvironment.MapPath("/" + ImageURL);
    string FileName = Microsoft.JScript.GlobalObject.unescape(tmp);

    if (System.IO.File.Exists(FileName))
    {
        FileStream fs = System.IO.File.OpenRead(FileName);
        byte[] buf = new byte[fs.Length];
        fs.Read(buf, 0, (int)fs.Length);
        fs.Close();
        return buf;
    }
    else
        return new byte[0];
}

Does that answer your question?

Upvotes: 1

Related Questions