I want to get a screen shot from different URL. For this task, i am using System.Net.WebRequest
and System.Net.WebResponse
and get System.IO.StreamReader
But as follow code giving error:
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
Parameter is not valid.
System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData) +397 System.Drawing.Image.FromStream(Stream stream) +9 WebApplication10.WebForm1.ConvertHtmlToImage() in E:\Prectices\WebApplication10\WebApplication10\WebForm1.aspx.cs:124 WebApplication10.WebForm1.Button1_Click(Object sender, EventArgs e) in E:\Prectices\WebApplication10\WebApplication10\WebForm1.aspx.cs:104 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +109 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +109 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +31 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3466
My code is as follow:
string content = "";
string url = "http://www.contoso.com/PostAccepter.aspx";
System.Net.WebRequest webRequest = WebRequest.Create(url);
System.Net.WebResponse webResponse = webRequest.GetResponse();
System.IO.StreamReader sr = new StreamReader(webResponse.GetResponseStream(), System.Text.Encoding.GetEncoding("UTF-8"));
content = sr.ReadToEnd();
//save to file
//byte[] b = Convert.FromBase64String(content);
byte[] b = Encoding.UTF8.GetBytes(content);
System.IO.MemoryStream ms = new System.IO.MemoryStream(b);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
img.Save(@"E:\Test1.png\image.png", System.Drawing.Imaging.ImageFormat.Jpeg);
img.Dispose();
ms.Close();