博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bmp24位彩色图像转8位灰度图像(纯C++)
阅读量:6983 次
发布时间:2019-06-27

本文共 1472 字,大约阅读时间需要 4 分钟。

  自从上一次写了,后来是准备马上就写程序了,谁知后来就忘了,昨天突然想起来就将其写了出来。

  程序的功能是将彩色图转灰度图,中间彩色和灰度的文件header都用到了,程序的流程我想我写的还是比较清楚的。没有用到Windows下的某些函数,在Linux下应该也能运行。

#include 
#include
using namespace std;#pragma pack(2) //两字节对齐,否则bmp_fileheader会占16Bytestruct bmp_fileheader{ unsigned short bfType; //若不对齐,这个会占4Byte unsigned long bfSize; unsigned short bfReverved1; unsigned short bfReverved2; unsigned long bfOffBits;};struct bmp_infoheader{ unsigned long biSize; unsigned long biWidth; unsigned long biHeight; unsigned short biPlanes; unsigned short biBitCount; unsigned long biCompression; unsigned long biSizeImage; unsigned long biXPelsPerMeter; unsigned long biYpelsPerMeter; unsigned long biClrUsed; unsigned long biClrImportant;};fstream input_file;fstream output_file;struct bmp_fileheader bfh;struct bmp_infoheader bih;unsigned char *src_buff;unsigned char *dst_buff;void read_bmp_fileheader(){ input_file.read((char*)&bfh,sizeof(struct bmp_fileheader));}void read_bmp_infoheader(){ input_file.read((char*)&bih,sizeof(struct bmp_infoheader));}void read_bmp_data(){ src_buff=new unsigned char[bih.biHeight*bih.biWidth*3]; input_file.read((char*)src_buff,sizeof(unsigned char)*bih.biHeight*bih.biWidth*3); }void bmp_rgb2gray(){ dst_buff=new unsigned char[bih.biHeight*bih.biWidth]; int tmp; unsigned long j=0; for (unsigned long i=0;i

转载地址:http://lktpl.baihongyu.com/

你可能感兴趣的文章
C# WinForm开发系列 - TextBox
查看>>
28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
查看>>
java文件传输
查看>>
Xen虚拟机迁移技术
查看>>
SQL Server配置delegation实现double-hop
查看>>
iOS开发之检查更新
查看>>
安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法。
查看>>
[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...
查看>>
Icomparer和Icomparable集合排序
查看>>
【poi xlsx报错】使用POI创建xlsx无法打开
查看>>
UNIX环境高级编程笔记之文件I/O
查看>>
DIV+CSS规范命名
查看>>
4G U盘版64位bitcoin专用挖矿操作系统
查看>>
我的2013 Q.E.D
查看>>
2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】...
查看>>
4.5. Rspamd
查看>>
超级简单:在你的ASP.NET页面自定义列表和分页
查看>>
(原创)INTERVAL分区表与RANGE分区表相互转化
查看>>
ArcMap中的名称冲突问题
查看>>
(转) 一张图解AlphaGo原理及弱点
查看>>