当前位置: 代码迷 >> Web Service >> 从浏览器拷贝的图片本地化,该如何处理
  详细解决方案

从浏览器拷贝的图片本地化,该如何处理

热度:193   发布时间:2016-05-02 02:47:16.0
从浏览器拷贝的图片本地化
s场景是这样的,自己开发的一个客户端程序,可以用来保存从浏览器拷贝的网页数据,在浏览器中选中一大段网页,然后复制,粘贴到这个客户端程序,它就会把复制的整个网页保存到本地,现在对图片本地化采用的方式是从剪贴板中获取到所有图片路径,然后到网上将图片下载到本地。这样导致程序保存很慢。
为了提高保存速度,我就想对图片本地化的方式做下改进,目前的考虑是,既然浏览器已经把网页完整的展现出来了,那么图片字节流应该已经存在于本地或者内存中了,如果能够找到这些图片在本地存放的位置,那么就不需要从互联网上再把图片下载下来。不知道这个考虑有没有可行性,请大神们指点一下。或者对图片本地化给些其他的思路~~~
------最佳解决方案--------------------


System.Collections.Specialized.StringCollection fileList = Clipboard.GetFileDropList();//获得文件名
                if (fileList.Count > 0)
                {
                    cmsMain.Enabled = false;
                    Thread thread = new Thread(new ParameterizedThreadStart(SaveBrowserPic));
                    thread.IsBackground = true;
                    thread.Start(fileList[0]);//复制的图片本地文件路径
                }
                else if (Clipboard.ContainsImage())
                {
                    Thread thread = new Thread(new ParameterizedThreadStart(SaveBrowserPic2));
                    thread.IsBackground = true;
                    thread.Start(Clipboard.GetImage());//保存内存中图片
                    Clipboard.Clear();
                }
                else
                {
                    MessageBox.Show("抱歉,无法获取当前图片相关信息!");
                }

private void SaveBrowserPic(object filePath)
        {
 FileInfo fi = new FileInfo(filePath.ToString());
                byte[] imageData = new byte[fi.Length];
                fs = fi.OpenRead();
                fs.Read(imageData, 0, Convert.ToInt32(fi.Length));
}

 private void SaveBrowserPic2(object image)
        {
            int resultCount = 0;
  相关解决方案