为了账号安全,请及时绑定邮箱和手机立即绑定

创建深度超过 8 位的图像会使 Visual Studio 崩溃

创建深度超过 8 位的图像会使 Visual Studio 崩溃

C#
杨魅力 2022-07-10 16:33:53
我正在使用 Emgu CV 库来显示图像并在 C# 项目中对它们进行一些数学运算。我正在尝试从文件系统中读取图片,如果我将图片的深度设置为 8 位,什么工作没有问题。一旦我想保存更大的图像,视觉工作室就会在实例化新图像的地方崩溃(参见代码)。崩溃意味着 UI 冻结并且 Windows 10 信息中心弹出一条消息,表示 Visual Studio 正在等待内部进程。我尝试将图片的深度设置为 32 位(int)和 16 位(短)。这些类型显示了所描述的问题。8位(字节)没有任何问题。我使用的图像大小为 69x44 像素,位深度为 32 位(这是资源管理器向我展示的)。private static readonly string imagePath = "C:/xxx/xxx/image.png";var image1 = new Image<Gray, byte>( imagePath ); //works finevar image2 = new Image<Gray, short>( imagePath ); //crashes visual studiovar image3 = new Image<Gray, int>( imagePath ); //crashes visual studio我希望 image2 和 image3 和 image1 一样被存储,因为我的文件系统上的图像具有正确的 bitdetph。
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

也许你有一个 32 位 Bgra 图像?这意味着每个像素有 4 个通道,每个通道使用 8 位。Bgra 代表蓝色、绿色、红色和阿尔法。这对于 png 图像来说是典型的,因为这种格式可以编码一个 alpha 通道。

尝试:

var image1 = new Image<Bgra, byte>( imagePath );


查看完整回答
反对 回复 2022-07-10
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号