Beispiel #1
0
        public static BitmapSource ShowROI(this BitmapSource source, Rect[] defectRects, int penThick = 3)
        {
            var brush = Brushes.Red;

            NamedNullException.Assert(source, nameof(source));
            NamedNullException.Assert(defectRects, nameof(defectRects));
            if (defectRects.Length == 0)
            {
                return(source);
            }

            var dv = new DrawingVisual();
            var dc = dv.RenderOpen();

            dc.DrawImage(source, source.FullRect());
            foreach (var defect in defectRects)
            {
                dc.DrawRectangle(null, new Pen(brush, penThick), Rect.Intersect(defect, source.FullRect()));
            }
            dc.Close();

            var renderedBmp = new RenderTargetBitmap(
                source.PixelWidth,
                source.PixelHeight,
                96, 96,
                PixelFormats.Default);

            renderedBmp.Render(dv);
            return(renderedBmp);
        }