如果将图片(byte[]类型) 显示在 wpf的 Image控件中???

hglei 2009-02-24 05:31:26
把 byte[] 数组类型的图片 显示在 System.Windows.Controls.Image控件 中

谢谢
...全文
702 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
deng520159 2009-04-24
  • 打赏
  • 举报
回复

if (!dr.IsNull("图片"))
{
byte[] data = new byte[0];
data = (byte[])dr["图片"];
int bmpSize = new int();
bmpSize = data.Length;
MemoryStream ms = new MemoryStream();
ms.Write(data,0, bmpSize);
Bitmap bmp;
bmp = new Bitmap(ms);
picbox.Image = bmp;
}
wuyq11 2009-04-24
  • 打赏
  • 举报
回复
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
参考
jinru2560 2009-04-24
  • 打赏
  • 举报
回复
byte[] byteArrayIn
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
haixj 2009-04-24
  • 打赏
  • 举报
回复
//create image source
//System.Windows.Media.Imaging.
bool noLoadImageErr = true;
BitmapImage myBitmapImage = new BitmapImage();
try
{
// BitmapImage.UriSource must be in a BeginInit/EndInit block
myBitmapImage.BeginInit();
myBitmapImage.StreamSource = new System.IO.MemoryStream((byte[])drP["image1"]);
//myBitmapImage.DecodePixelWidth = 60;
myBitmapImage.EndInit();
}
catch
{
noLoadImageErr = false;
try
{
myBitmapImage = ImageFromGDIplus((byte[])drP["image1"]);
}
catch
{
noLoadImageErr = false;
}
}
if (noLoadImageErr)
{
img1.Source = myBitmapImage;
myBitmapImage = null;
this.DragProductList1.Items.Add(img1);
}
hglei 2009-02-24
  • 打赏
  • 举报
回复
谢谢各位大侠
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在 WPF ,WriteableBitmap 是一个关键类,允许开发者将位图作为可写像素数组进行操作,特别适用于高效处理图片和视频流。它通过直接操作像素值,避免频繁创建新的 BitmapSource 对象,从而降低 CPU 和内存开销。 在 WPF ,可以通过指定宽度、高度、分辨率和像素格式来创建 WriteableBitmap 对象。例如: 其,dpiX 和 dpiY 表示分辨率,PixelFormats.Bgra32 表示每个像素占用 4 个字节,包含透明度(Alpha)、蓝(Blue)、绿(Green)和红(Red)通道。 可以通过设置 Image 控件的 Source 属性,将其绑定到 WriteableBitmap 对象,如下所示: 当接收到新的视频帧时,可以使用 WriteableBitmap 的 Lock 和 Unlock 方法高效更新像素,避免不必要的内存复制。基本流程如下: 获取像素缓冲区 更新像素数据 根据视频帧数据修改 pixels 数组的像素值。 应用更新 为了确保视频播放流畅,建议使用异步操作处理新帧,避免阻塞 UI 线程。可以使用 Task.Run 或 Dispatcher.BeginInvoke 在后台线程处理视频帧,然后在 UI 线程更新 WriteableBitmap。 在处理视频流时,注意及时释放不再使用的资源,如解码后的视频帧数据,以防止内存泄漏。 通过分析和运行示例代码,可以更好地理解 WriteableBitmap 在处理图片流视频的应用,从而提升应用程序性能并掌握 WPF 图像处理的核心技术。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧