将WriteableBitmap转为byte[]

本文介绍了一个用于将Win8 Metro中WriteableBitmap转换为byte[]的方法。此函数适用于24位RGB格式的图像,并通过遍历像素缓冲区实现转换。

Win8 metro中的操作与之前的版本有所不同,因此作为一个新手,我将自己的一些问题解答记录了下来,希望与大家分享!!

下面是将WriteableBitmap转为byte[]的函数(默认的图像为24位RGB格式<wbr>):</wbr>

private byte[] WriteableBitmapToBytes(WriteableBitmap src)

{

Stream temp = src.PixelBuffer.AsStream();

byte[] tempBytes = new byte[src.PixelWidth * src.PixelHeight * 3];

for (int i = 0; i < tempBytes.Length; i++)

{

temp.Seek(i, SeekOrigin.Begin);

temp.Write(tempBytes, 0, tempBytes.Length);

}

temp.Dispose();

return tempBytes;

}

本文所写的所有程序都已成功实践,若有错误请大家留言更正,谢谢指教,共勉!!

将ScottPlot生成的图表换成UI Element(用户界面元素),通常是在WPF(Windows Presentation Foundation)环境中。以下是一种常见的做法: 1. 创建ScottPlot图形:首先,使用ScottPlot库创建一个图表,比如线图、散点图或者直方图。 ```csharp using ScottPlot; var plt = new Plot2D(500, 300); plt.Title("My Chart"); plt.AddScatter(new double[] { 1, 2, 3, 4, 5 }, new double[] { 2, 4, 6, 8, 10 }); ``` 2. 换为ImageSource:为了在WPF中展示图表,我们需要将其换为图像源,比如BitmapImage或WriteableBitmap。 ```csharp // 使用ScottPlot的ToImage方法获取位图图像源 var bitmap = plt.ToImage(); // 或者使用WriteableBitmap,以保持图表更新的能力 var writeableBitmap = new WriteableBitmap(bitmap, null); ``` 3. 将ImageSource添加到UI元素:然后,可以将获取的图像源添加到WPF的UIElement,如PictureBox、Canvas或者其他的UI容器中。 ```csharp var pictureBox = new PictureBox(); pictureBox.Width = writeableBitmap.PixelWidth; pictureBox.Height = writeableBitmap.PixelHeight; pictureBox.ImageSource = writeableBitmap; ``` 4. 将UIElement绑定到视图模型:如果你的应用有MVVM架构,可以把UIElement绑定到对应的视图模型属性,通过数据绑定机制实时更新图表。 ```xaml <PictureBox x:Name="plotPictureBox" Binding="{Binding PlotImage}" /> ``` 在这里,`PlotImage`是你的视图模型中的一个依赖属性,它会自动更新当图表发生变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值