Exemple #1
0
        void AddImage2(ListViewItem item)
        {
            int    imageSize = largeimagelist.ImageSize.Width;
            Bitmap bmp       = ZXStudio.Properties.Resources.up_folder_icon_54527;

            if (largeimagelist.Images.IndexOfKey(item.Name) < 0)
            {
                switch (imageSize)
                {
                case 16: sysimagelist = new SysImageList(SysImageListSize.smallIcons); break;

                case 48: sysimagelist = new SysImageList(SysImageListSize.largeIcons); break;

                case 96: sysimagelist = new SysImageList(SysImageListSize.extraLargeIcons); break;

                case 256: sysimagelist = new SysImageList(SysImageListSize.JumboIcons); break;
                }
                LargeImageList.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(bmp, System.Drawing.Imaging.PixelFormat.Format32bppArgb));

                smallimagelist.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(bmp, System.Drawing.Imaging.PixelFormat.Format32bppArgb));
                item.ImageIndex = LargeImageList.Images.Count - 1;
            }
            else
            {
                smallimagelist.Images.Add(item.Name, Thumbnail.CentreImage(bmp, smallimagelist.ImageSize.Width, smallimagelist.ImageSize.Height));
                if ((bmp.Width != imageSize && bmp.Height != imageSize))// && pidl.PhysicalPath != "")
                {
                    bmp = Thumbnail.CentreImage(bmp, imageSize, imageSize);
                }
                else
                {
                    if (bmp.Width != imageSize || bmp.Height != imageSize)
                    {
                        bmp = Thumbnail.ScaleImage(bmp, imageSize, imageSize);
                    }
                }

                //Thumbnail.SaveThumb(pidl.Pidl, bmp);
                largeimagelist.Images.Add(item.Name, bmp);
            }

            item.ImageIndex = largeimagelist.Images.Count - 1;
        }
Exemple #2
0
        void AddImage(IntPtr himage, PIDL pidl, ListViewItem item)
        {
            int    imageSize = largeimagelist.ImageSize.Width;
            Bitmap bmp       = null;

            //if (thumbDB.HasThumbnail(System.IO.Path.GetFileName(pidl.PhysicalPath)))
            //{
            //    using (Image img = thumbDB.GetThumbnailImage(System.IO.Path.GetFileName(pidl.PhysicalPath)))
            //    {
            //        largeimagelist.Images.Add(item.Name, Thumbnail.ScaleImage((Bitmap)img, imageSize, imageSize));
            //        item.ImageIndex = largeimagelist.Images.Count - 1;

            //        return;
            //    }

            //}
            try
            {
                if (largeimagelist.Images.IndexOfKey(item.Name) < 0)
                {
                    if (himage == IntPtr.Zero)
                    {
                        switch (imageSize)
                        {
                        case 16: sysimagelist = new SysImageList(SysImageListSize.smallIcons); break;

                        case 48: sysimagelist = new SysImageList(SysImageListSize.largeIcons); break;

                        case 96: sysimagelist = new SysImageList(SysImageListSize.extraLargeIcons); break;

                        case 256: sysimagelist = new SysImageList(SysImageListSize.JumboIcons); break;
                        }
                        int index = sysimagelist.IconIndex(pidl.Pidl);
                        LargeImageList.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(sysimagelist.Icon(index).ToBitmap(), System.Drawing.Imaging.PixelFormat.Format32bppArgb));

                        smallimagelist.Images.Add(item.Name, Thumbnail.CreateAlphaBitmap(sysimagelist.Icon(index).ToBitmap(), System.Drawing.Imaging.PixelFormat.Format32bppArgb));
                        item.ImageIndex = LargeImageList.Images.Count - 1;
                    }
                    else
                    {
                        //bmp = Thumbnail.GetCachedImage(pidl.Pidl, imageSize);
                        //if (bmp == null)
                        {
                            bmp = Thumbnail.GetBitmapFromHBitmap(himage);
                            {
                                smallimagelist.Images.Add(item.Name, Thumbnail.CentreImage(bmp, smallimagelist.ImageSize.Width, smallimagelist.ImageSize.Height));
                                if ((bmp.Width != imageSize && bmp.Height != imageSize))// && pidl.PhysicalPath != "")
                                {
                                    bmp = Thumbnail.CentreImage(bmp, imageSize, imageSize);
                                }
                                else
                                {
                                    if (bmp.Width != imageSize || bmp.Height != imageSize)
                                    {
                                        bmp = Thumbnail.ScaleImage(bmp, imageSize, imageSize);
                                    }
                                }
                            }
                            //Thumbnail.SaveThumb(pidl.Pidl, bmp);
                        }
                        largeimagelist.Images.Add(item.Name, bmp);

                        item.ImageIndex = largeimagelist.Images.Count - 1;
                    }
                    return;
                }
                item.ImageIndex = largeimagelist.Images.IndexOfKey(item.Name);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                if (bmp != null)
                {
                    bmp.Dispose();
                }
                Thumbnail.DeleteObject(himage);
            }
        }