图像转置时由于内存分配问题造成闪退的解决方案
问题背景:
使用MFC框架(C++语言)进行图像处理,参考何斌《Visual C++ 数字图像处理(第二版)》中图像几何变换运算部分图像转置的代码。
问题描述:
在进行图像转置操作时,发现部分图片出现在进行转置操作后程序闪退的情况。
原因分析:
首先放出我们实验用的两张图:
图1(宽×高=474×295)
图2(宽×高=300×246)
我们在实验过程中发现图一可以正常地进行转置,而图二在转置时会闪退。
我们观察书中关于图像转置的代码可以发现,其返回值为一个bool类型,原有图像分配的内存空间也并未改变:
而在bmp图像中,图像每行的字节数必须是4的倍速,这就有可能造成转置后图像所需的存储数据比转置前多的情况。
由图一、图二分析可知,图一转置后所占的空间小于原空间,而图二转置后所需空间变大了,故会产生闪退的情况。
解决方案:
我们为转置后的图像重新申请一块空间,并将图像数据存储与这块空间中,最终将该图像的句柄返回,在View函数中更新图像句柄即可。
图像转置时由于内存分配问题造成闪退的解决方案相关推荐
- Android 页面跳转时发生双击导致app闪退的解决方案
在页面跳转时双击双击,查阅了各种资料 尝试一:从双击事件出发,避免双击事件 例如重写onClick事件 public abstract class NoDoubleClickListener impl ...
- ENVI 5.3 辐射定标时无法读取Landsat头文件并闪退的解决方案
ENVI 5.3 辐射定标时无法读取Landsat头文件并闪退的解决方案 问题详情 问题发现的过程 几个思路 1.数据源属于LandsatL2数据,ENVI暂不支持 2.某些数据对64位的支持较差 3 ...
- android 呼入电话游戏闪退,安卓手机游戏卡顿、闪退问题解决方案
安卓手机游戏卡顿.闪退问题解决方案,下面就由去游戏pro小编忆成殇为大家带来安卓手机游戏卡顿.闪退问题解决方案,剑魂之刃闪退.卡顿一直困扰着玩家,那么究竟怎样更好的玩好我们的卡顿及闪退问题呢,下面就随 ...
- 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)
全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解) 参考文章: (1)全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案 ...
- 3DMAX输入序列后消失/闪退问题解决方案
3DMAX输入序列后消失/闪退问题解决方案 遇到3DMAX输入序列后消失/闪退的问题,一般有以下两种解决方案. 1.兼容性修复设置 选择已安装软件,右键打开属性-兼容性-运行兼容性疑难解答-打开疑难解 ...
- Mac出现程序闪退的解决方案
Mac出现程序闪退的解决方案 参考文章: (1)Mac出现程序闪退的解决方案 (2)https://www.cnblogs.com/lyraLee/p/10937161.html 备忘一下.
- Eclipse启动时闪退问题解决方案
当Eclipse启动时出现闪退,可尝试以下几种解决方案: 1.在C:\Windows\System32 系统文件夹中查找,如果存在java.exe, javaw.exe etc.将其删除. 2.打开E ...
- Windows下,启动Redis闪退 问题解决方案
目录 前言 第1步:修改"redis.windows.conf"文件内容 第2步:输入cmd命令,启动Redis 第3步:创建Redis快速启动程序start.bat 前言 解压R ...
- Linux Kettle 闪退问题解决方案
我们在搭建kettle平台时,往往会搭建两种平台,一种win.一种是linux.在windows上进行kettle ETL测试工作,测试成功之后,会发布到linux服务器上,这就出现了一下问题--li ...
最新文章
- linux多用户怎么表示,Linux如何建立多用户
- XML的简单读取与写入
- 十五、插入排序算法(两种方式)
- 标准模板库(STL)学习指南之vector向量
- Hadoop Map/Reduce的工作流
- java open course_关于开闭原则 JavaDiscountCourse 类的设计
- Android 的Android Device Monitor 打不开出现 A error has occured
- php留言板显示不出,php留言板源代码_php留言代码留言后显示乱码
- html/css表单美化
- 使用urllib发起请求- urlopen发起请求read/decode/getcode/info/geturl-post请求抽屉网
- MongoDB快速学习
- Pytorch学习记录(七):自定义模型 Auto-Encoders 使用numpy实现BP神经网络
- sqlsugar模糊查询
- vue 安装(看图就够了,皮卡皮卡)
- Maven 三种archetype说明
- LWN:OpenSUSE MicroOS Desktop - 基于Flatpak 的不可更改发行版!
- java实现简单的搜索引擎
- 四路抢答器c语言程序设计,四路抢答器的文档.pdf
- GeekPwn嘉年华:黑客操控POS机 银行卡轻松“易主”
- php5的内置数组,php 内置数组( )可以获取服务器内变量信息。