public LibraryImage GetImage(string path, bool canBeProcessed, BaseItem item) {
            LibraryImage image = null;
            bool cached = false;

            lock(cache){
                cached = cache.TryGetValue(path, out image);
            }

            if (!cached && image == null) {
                try {

                    foreach (var resolver in Kernel.Instance.ImageResolvers) {
                        image = resolver(path, canBeProcessed, item);
                        if (image != null) break;
                    }

                    if (image == null) {
                       image = new FilesystemImage();
                    }

                    image.Path = path;
                    image.Init(canBeProcessed, item);

                } catch (Exception ex) {
                    Logger.ReportException("Failed to load image: " + path + " ", ex);
                    image = null;
                }
            }

            lock (cache) {
                cache[path] = image;
            }

            return image;
        }
        public LibraryImage GetImage(string path)
        {
            LibraryImage image = null;
            bool cached = false;

            lock(cache){
                cached = cache.TryGetValue(path, out image);
            }

            if (!cached && image == null) {
                try {

                    foreach (var resolver in Kernel.Instance.ImageResolvers) {
                        image = resolver(path);
                        if (image != null) break;
                    }

                    if (image == null) {
                        image = new FilesystemImage();
                    }

                    image.Path = path;
                    image.Init();

                    // this will trigger a download a resize
                    image.EnsureImageSizeInitialized();
                } catch (Exception ex) {
                    Logger.ReportException("Failed to load image: " + path + " ", ex);
                    image = null;
                }
            }

            lock (cache) {
                cache[path] = image;
            }

            return image;
        }