Beispiel #1
0
        public Stream CreateImage(string html)
        {
            if (String.IsNullOrWhiteSpace(html))
                return new RenderTargetBitmap(Width, 1, 0, 0, PixelFormats.Pbgra32).CreateStream();

            string text = HttpUtility.HtmlDecode(html);

            var output = new DrawingGroup();
            var format = new BasicTextParagraphProperties(font, 14, FlowDirection.RightToLeft);
            var words = Measurer.MeasureLines(text, Width, format, output).ToList();

            var dv = new DrawingVisual();
            using (var c = dv.RenderOpen())
                c.DrawImage(new DrawingImage(output), new Rect(new Point(Width - output.Bounds.Width, 0), output.Bounds.Size));
            var rtb = new RenderTargetBitmap(Width, (int)output.Bounds.Height, 96, 96, PixelFormats.Pbgra32);
            rtb.Render(dv);

            return rtb.CreateStream();
        }