如何显示3维数组(128*128*6)为ListBox中的图像?

weixin_38053353 2017-11-29 05:47:13
我有一堆3d数组,维度为128*128*N,表示N张128*128的图像像素值。如何将这些图像显示到ListBox中?
数据示例(128*128*6):
https://pan.baidu.com/s/1kViTwkn


...全文
19 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38077132 2017-12-18
  • 打赏
  • 举报
回复
绑定到ListBox的Items,指定Converter,在Converter中实现数组到图像的转化。
weixin_38114673 2017-12-18
  • 打赏
  • 举报
回复
绑定到ListBox的Items,指定Converter,在Converter中实现数组到图像的转化。
weixin_38111164 2017-12-01
  • 打赏
  • 举报
回复
Hi,
我不认为这属于WPF范围的范畴,WPF将BitmapImage绑定到Image控件上显示。你所说的DataTemplate或者ItemTemplatelistbox, 都是为了如何展示数据,ListBox不会带这些业务逻辑处理的函数。
Sincerely,
Bob
weixin_38103381 2017-12-01
  • 打赏
  • 举报
回复
谢谢您的答复!这些细节我都实现了,我想知道有没有可能通过DataTemplate或者ItemTemplate的方式,直接实现数组与ListBox图像的绑定,因为我的二维数组有好多,随时要变,每次都去创建Bitmap跟winform下实现机制一样了,很麻烦,有没有更WPF的解决方案~
weixin_38092066 2017-11-30
  • 打赏
  • 举报
回复
Hi,
下面是大致的思路供你参考,根据你的描述,
首先,你似乎要从文本中获取所有的数据:
string[] lines = File.ReadLines("img.txt").ToArray(); //得到一维数组 double[] doubles = Array.ConvertAll(lines, Double.Parse);
然后,你需要将这个大数组转化为N个double[128, 128]的二维数组。
接着,创建Bitmap, 通过这个ColorPalette 类 设置图像矩阵,这一步你可以参考下面的链接:
https://social.msdn.microsoft.com/Forums/en-US/810fa816-8a9b-4d62-b9e2-707f2d1fcf42/how-to-display-an-image-from-array?forum=csharplanguage
最后,你可能还需要将Bitmap转化成WPF中才能显示的bitmapimage。这一步你可以参考一下链接:
https://social.msdn.microsoft.com/Forums/vstudio/en-US/aad606b1-3f64-4314-a552-370afd361926/how-to-convert-systemdrawingimage-to-systemwindowsmediabitmapimage?forum=wpf
Sincerely,
Bob

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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