【发布时间】:2016-07-21 00:07:57
【问题描述】:
我有一个包含黑白图像的结构:
public class Img
{
public int height;
public int width;
public byte[] matrix;
}
矩阵中包含的值为0或255。
使用 C# WPF 在组件中显示此图像的最佳方式是什么?
我试过这个:
XAML:
<Image Grid.Row="0"
Stretch="Uniform"
Source="{Binding Picture, Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"/>
C#:
public BitmapImage Picture
{
get
{
return _picture;
}
private set
{
_picture = value;
OnPropertyChanged("Picture");
}
}
public void Generate()
{
Img img = CreateImg();
Picture = LoadImage(img.width, img.height, img.matrix);
}
private BitmapImage LoadImage(int w, int h, byte[] imageData)
{
using (MemoryStream memory = new MemoryStream(imageData))
{
memory.Position = 0;
BitmapImage bitmapimage = new BitmapImage();
bitmapimage.BeginInit();
bitmapimage.StreamSource = memory;
bitmapimage.EndInit();
return bitmapimage;
}
}
但它不起作用:
“来自 HRESULT 的异常:0x88982F50”
【问题讨论】:
-
我检查并在项目中为我工作的确切代码
-
我看过这篇文章,我的
LoadImage就是从这里开始的,但是我有一个例外,想知道由于我的图像是黑白的,是否有更好的方法 -
matrix真的是一个包含图像的字节数组吗?通过写入文件来检查它并在图像查看器中将其作为原始文件读取。 -
我已经编辑了你的标题。请参阅Should questions include “tags” in their titles?,其中的共识是“不,他们不应该”。