Exemplo n.º 1
0
        public ImageInfo getImage(Server server, string url)
        {
            if (url == null)
            {
                return(new ImageInfo(Resources.nothing, null));
            }
            lock (this) {
                if (cache.ContainsKey(url))
                {
                    return(cache[url]);
                }
                try {
                    HttpWebResponse response       = getResponse(server, url);
                    var             responseStream = response.GetResponseStream();

                    byte[] imgbytes = PlvsUtils.getBytesFromStream(responseStream);

                    Image img = Image.FromStream(new MemoryStream(imgbytes));

                    var fileName = iconCacheDir + "\\" + getFileName(url);
                    using (FileStream f = File.Create(fileName)) {
                        f.Write(imgbytes, 0, imgbytes.Length);
                        f.Close();
                    }
                    ImageInfo imageInfo = new ImageInfo(img, new Uri(fileName));
                    cache[url] = imageInfo;
                    return(imageInfo);
                } catch (Exception e) {
                    Debug.WriteLine("ImageCache.getImage() - exception: " + e.Message);
                    cache[url] = new ImageInfo(Resources.nothing, null);
                    return(new ImageInfo(Resources.nothing, null));
                }
            }
        }