问题描述
publicclassPictureCut{string_Url;string_FileName;publicvoidSave(stringurl,stringfilename){_Url=url;_FileName=filename;varm_thread=newThread(_Generate);m_thread.SetApartmentState(ApartmentState.STA);m_thread.Start();m_thread.Join();//varwebBrowser=newWebBrowser{ScrollBarsEnabled=false};////WebBrowserwebBrowser=newWebBrowser();//创建一个WebBrowser//webBrowser.ScrollBarsEnabled=false;//隐藏滚动条//webBrowser.Navigate(_Url);//打开网页//webBrowser.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);//增加网页加载完成事件处理函数}privatevoid_Generate(){varbrowser=newWebBrowser{ScrollBarsEnabled=false};browser.Navigate(_Url);browser.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);while(browser.ReadyState!=WebBrowserReadyState.Complete){Application.DoEvents();}browser.Dispose();}voidwebBrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){WebBrowserwebBrowser=(WebBrowser)sender;//网页加载完毕才保存if(webBrowser.ReadyState==WebBrowserReadyState.Complete){//获取网页高度和宽度,也可以自己设置intheight=webBrowser.Document.Body.ScrollRectangle.Height;intwidth=webBrowser.Document.Body.ScrollRectangle.Width;//调节webBrowser的高度和宽度webBrowser.Height=height;webBrowser.Width=width;Bitmapbitmap=newBitmap(width,height);//创建高度和宽度与网页相同的图片Rectanglerectangle=newRectangle(0,0,width,height);//绘图区域webBrowser.DrawToBitmap(bitmap,rectangle);//截图//保存图片对话框//SaveFileDialogsaveFileDialog=newSaveFileDialog();//saveFileDialog.Filter="JPEG(*.jpg)|*.jpg|PNG(*.png)|*.png";//saveFileDialog.ShowDialog();bitmap.Save(_FileName);//保存图片}}}
读取的页面是手写签名生成的页面,只有一个img标签放置手写签名,排查了一下应该是这个手写签名的问题才会出现截图为X的情况,但是签名保存后直接就是data:image/png;base64这种格式的,下面是保存后的图片麻烦各位大神帮忙看下这种情况要怎么解决,谢啦!