【问题标题】:silverlight draw on bitmapSilverlight 在位图上绘制
【发布时间】:2010-12-22 01:47:32
【问题描述】:
Image img = new Bitmap(Image.FromFile(file.FullName));

using (Graphics g = Graphics.FromImage(img)){
    g.DrawRectangle(Pens.Black, 0, 0, img.Width - 2, img.Height - 2);
}

喜欢这个

在银光下怎么办?

【问题讨论】:

    标签: c# .net silverlight


    【解决方案1】:

    使用WriteableBitmap 类。

    参考资料:

    示例:

    使用WritableBitmap,您可以在ControlCanvas 上绘制一些东西,然后使用public WriteableBitmap(UIElement element,Transform transform) 构造函数将其保存到位图中。

    【讨论】:

      【解决方案2】:

      您不需要将 SL 矩形渲染到 WriteableBitmap。 WriteableBitmapEx 开源库非常适合这一点。有关 DrawRectangle 方法的示例,请参见项目站点。 http://writeablebitmapex.codeplex.com

      还有现场样本,包括Shape sample

      您也可以在源代码库中找到示例代码。

      【讨论】:

        【解决方案3】:

        您可以为此使用WriteableBitmap。创建一个 Canvas 并在 Canvas 上绘制您的元素,加载其他图像等。然后在 Canvase 上完成渲染后,您可以从 Canvas 创建 WriteableBitmap,然后执行您需要的所有操作。

        在下面的示例中,我将位图指定为 Image 元素的 Source 以显示最终结果。

        Canvas canvas = new Canvas();
        UIElement ellipse = new Ellipse() 
          { Width = 100, Height = 100, Fill = new SolidColorBrush(Colors.Red) };
        Canvas.SetLeft(ellipse, 100);
        Canvas.SetTop(ellipse, 100);
        canvas.Children.Add(ellipse);
        
        WriteableBitmap bmp = new WriteableBitmap(canvas, null);
        myImage.Source = bmp;
        

        【讨论】:

        • 你快了 5 秒 :)
        猜你喜欢
        • 1970-01-01
        • 2015-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多