s场景是这样的,自己开发的一个客户端程序,可以用来保存从浏览器拷贝的网页数据,在浏览器中选中一大段网页,然后复制,粘贴到这个客户端程序,它就会把复制的整个网页保存到本地,现在对图片本地化采用的方式是从剪贴板中获取到所有图片路径,然后到网上将图片下载到本地。这样导致程序保存很慢。
为了提高保存速度,我就想对图片本地化的方式做下改进,目前的考虑是,既然浏览器已经把网页完整的展现出来了,那么图片字节流应该已经存在于本地或者内存中了,如果能够找到这些图片在本地存放的位置,那么就不需要从互联网上再把图片下载下来。不知道这个考虑有没有可行性,请大神们指点一下。或者对图片本地化给些其他的思路~~~
------最佳解决方案--------------------
System.Collections.Specialized.StringCollectionfileList=Clipboard.GetFileDropList();//获得文件名
if(fileList.Count>0)
{
cmsMain.Enabled=false;
Threadthread=newThread(newParameterizedThreadStart(SaveBrowserPic));
thread.IsBackground=true;
thread.Start(fileList[0]);//复制的图片本地文件路径
}
elseif(Clipboard.ContainsImage())
{
Threadthread=newThread(newParameterizedThreadStart(SaveBrowserPic2));
thread.IsBackground=true;
thread.Start(Clipboard.GetImage());//保存内存中图片
Clipboard.Clear();
}
else
{
MessageBox.Show("抱歉,无法获取当前图片相关信息!");
}
privatevoidSaveBrowserPic(objectfilePath)
{
FileInfofi=newFileInfo(filePath.ToString());
byte[]imageData=newbyte[fi.Length];
fs=fi.OpenRead();
fs.Read(imageData,0,Convert.ToInt32(fi.Length));
}
privatevoidSaveBrowserPic2(objectimage)
{
intresultCount=0;