8bit位图保存为1bit
在研究dlp投影仪时,由于想要投影1位深的位图图像,在知乎上找到一段代码:
openCV将8bit(1像素对应8bit)图像保存为1bit(1像素对应1bit) - 知乎
在运行到此段代码时,报错:VC Critical error detected c0000374;
std::ofstream fp(dst.c_str(), std::ios::binary | std::ios::out);
在看了几篇文章后,调试了好久,终于发现了问题!
VC Critical error detected c0000374 崩溃问题及解决_恋恋西风的博客-CSDN博客_c0000374
在save1BitImage函数中,有如下代码:
int line_byte = (width * biBitCount >> 3 + 3) / 4 * 4;
char* p_data = (char*)malloc(line_byte * height);
此处右移操作符优先级小于加号运算符,因此这里相当于右移了6位。本来是为了计算4字节一像素值的行像素字节长度才要右移3位(除以8)。直接导致分配动态内存长度错误!
所以改为
//待存储图像数据每行字节数为4的倍数
int line_byte = ((width * biBitCount >> 3 ) + 3) / 4 * 4;
调试通过。
C++ 运算符优先级_csdn_1HAO的博客-CSDN博客_c++运算符的优先级顺序
8bit位图保存为1bit相关推荐
- linux下将8bit二值位图转化为1bit单色位图【C/C++】
linux下将8bit二值位图转化为1bit单色位图 bmp位图主要由文件头和信息头两部分,根据windows api下bmp结构体定义,可转化为以下linux可用的结构体(禁用了gcc/g++编译器 ...
- opencv图片保存0字节_openCV将8bit(1像素对应8bit)图像保存为1bit(1像素对应1bit)...
前言 openCV处理的图像最小的位深度都是8,即每个像素的灰度值要用8bit存储,二值化处理的图像也是用8bit来存储每个像素的灰度值(0代表黑色,255代表白色),为什么不能用0和1表示呢,即每个 ...
- 在VB6中保存单色(1Bit)位图(VB6代码)
程序代码: Option Explicit Private Const DIB_RGB_COLORS As Long = 0 Private Const SRCCOPY As Long = & ...
- JPEG文件数据结构以及将位图保存为JPG的代码
一.简述 JPEG是一个压缩标准,又可分为标准JPEG.渐进式JPEG及JPEG2000三种: ①标准JPEG:以24位颜色存储单个光栅图像,是与平台无关的格式,支持最高级别的压缩,不过,这种压缩是有 ...
- DIB位图(Bitmap)的读取和保存
设备无关位图(Device Independent Bitmap)是可以保存在磁盘的位图文件,可以从磁盘读取到内存或者从内存保存到磁盘上.它的文件结构是标准化的,可以在Windows/Linux/Un ...
- 【转】DIB位图(Bitmap)的读取和保存
转自:https://www.cnblogs.com/wangguchangqing/p/5417444.html 设备无关位图(Device Independent Bitmap)是可以保存在磁盘的 ...
- 69 RGB图像转单色位图
1 前言 前段时间搞了一下电子墨水屏显示项目,用的这款墨水屏不能直接显示彩色图.灰度图及二值图,需要将图像转换成单色位图才能显示. 单色位图这还是第一次接触,后面看了资料了解到单色位图和二值图类似.二 ...
- 位图Bitmap(基于Java实现)
所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况.通常是用来判断某个数据存不存在的. 设计原则: 尽可能的最大化利用内存,极限挖掘.利用.发挥Java的性能. ...
- bmp位图格式详细介绍-1/4/8/16/24/32bit、存储格式等
目录 一.概述 二..bmp格式文件详解 2.1 位图文件头 2.2 位图信息头 2.3 调色板 2.4 位图数据 三.位图的其他知识 3.1 压缩的位图 一.概述 bmp是英文Bitmap ...
最新文章
- p40 升级鸿蒙,等了这么久,我的P40终于可以升级鸿蒙系统了
- 计算机与英语专业结合的案例,文科生可以申请加拿大计算机专业吗?让这个真实案例给你肯定的答案!...
- noj Nightmare
- Java开发微信的6个步骤
- submit与execute区别
- 建议设计日常多逛,多学习的网站
- 当DIV中的内容超过 div的宽度的时候
- 获取当前电脑全部网络连接名字
- 大数据Hadoop原理:大数据Hadoop技术原理简介
- c语言串口通信实验报告,单片机串口通信实验报告总结
- 中国移动“梧桐杯”大数据应用创新大赛强势来袭三大赛道再续辉煌
- 卷妹的成长日记之javaweb day2
- 安装配置Glusterfs
- Linux 系统增加硬盘
- 【Hack The Box】linux练习-- Ophiuchi
- Json与XML在线互转工具
- 生死狙击服务器维护什么意思,生死狙击更新维护公告
- js字符串去除空格和中文
- 怎么看电脑配置?这些查看电脑配置的方法你知道吗?
- VRRP的概述以及VRRP命令和VLAN结合运用
热门文章
- Transact-SQL编程
- 【人工智能算法从图解入手】
- iOS iPhone设备判断大全,包含X系列和11
- 微格教学c语言指针教案,小学微课程教案
- ae计算机没有该字体,【干货】自己动手,完美解决AE CC 2017/CC 2018/CC 2019字体问题CT generic: not ascii...
- 计算机基础知识表格斜线,在WORD中,其中一个表格里画一斜线怎么画?
- vue3语法糖父子组件的通信
- 第一次写writeup
- GEC6818 移植 rtl8723bu wifi驱动
- cad2016中选择全图字体怎么操作_cad教程分享CAD如何替换找不到的原文字体?