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); } }
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); } } }