这是我的一段代码,但我有一个错误
未找到适合完成此操作的成像组件
在“ EndInit()”行中。
我已经阅读了WIC注册表修改(注意:我的操作系统是Windows 7,我的IDE是VS 2010),但它根本不起作用:(
我想知道你是否让我知道如何解决它。
BitmapImage myBitmapImage = new BitmapImage();
byte[] DM = new byte[307200];
for (int i = 0; i < 640; i++)
for (int j = 0; j < 480; j++)
if (i < 500)
DM[i + j] = i;
using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(DM))
{
myBitmapImage.BeginInit();
myBitmapImage.StreamSource = memoryStream;
myBitmapImage.DecodePixelWidth = 640;
myBitmapImage.EndInit();
}
img.Source = myBitmapImage;
答案 0 :(得分:4)
好吧,你不能只传递一个像素数据数组;课堂上没有办法知道图像的长度和高度,通道和颜色深度。您需要为支持的格式提供有效的标头,例如bmp,jpg或png。还有其他一些,MSDN上的某个列表存在。
由于您想要从头开始创建位图,您可能需要使用WritableBitmap
代替。
(顺便说一下,DecodePixelWidth
不是你想象的那样;它只是在解码后缩小图片以节省内存)