Пример #1
0
        protected override Bitmap GetThumbnailImage(uint width)
        {
            Logging.Log("in GetThumbnailImage");
            byte[] buffer = new byte[SelectedItemStream.Length];
            SelectedItemStream.Read(buffer, 0, (int)SelectedItemStream.Length);
            using (var fs = new MemoryStream(buffer))
            {
                byte[] array = Workspace.LoadThumbnailFromStream(fs);
                Logging.Log("Datei eingelesen");
                Bitmap bmp;
                Bitmap result;
                using (var ms = new MemoryStream(array))
                {
                    bmp = new Bitmap(ms);
                    int largerSide = Math.Max(bmp.Size.Height, bmp.Size.Width);

                    result = new Bitmap(largerSide + 2, largerSide + 2);

                    Graphics g = Graphics.FromImage(result);
                    g.Clear(System.Drawing.Color.White);
                    g.DrawImage(bmp, largerSide / 2 + 1 - bmp.Size.Width / 2,
                                largerSide / 2 + 1 - bmp.Size.Height / 2, bmp.Size.Width, bmp.Size.Height);
                    g.DrawRectangle(new Pen(Color.Black), new Rectangle(0, 0, largerSide, largerSide));
                    //debug
                    //g.DrawString($"size:{bmp.Size.Width}x{bmp.Size.Height}", new Font("Arial", 5, FontStyle.Regular), Brushes.Black, 5, 5);
                }
                return(result);
            }
        }
Пример #2
0
        protected override Bitmap GetThumbnailImage(uint width)
        {
            using (MemoryStream _cStream = new MemoryStream())
            {
                SelectedItemStream.CopyTo(_cStream);

                _tImage = new Lazy <IImageRead>(() => Imgd.Read(_cStream));

                var size = _tImage.Value.Size;
                var data = _tImage.Value.ToBgra32();

                using (MarshalBitmap _tBitmap = new MarshalBitmap(size.Width, size.Height, data))
                {
                    _rBitmap = new Lazy <Bitmap>(() => new Bitmap(_tBitmap.Bitmap, (int)width, (int)width));
                    return(_rBitmap.Value);
                }
            }
        }