c++读取24位BMP图像并处理
来源:互联网 发布:淘宝怎么设置员工旺旺 编辑:程序博客网 时间:2024/06/05 15:27
代码
本代码在vs2017上测试运行,由于工具不同可能要有所修改。 关于bmp 4字节对齐
#include <iostream>#include <windows.h> using namespace std;typedef struct{ BYTE b; BYTE g; BYTE r;}RGB;RGB imgOpr(RGB a){ RGB b; b.b = 255-a.b; b.g = 255-a.g; b.r = 255-a.r; return b;}int main(){ BITMAPFILEHEADER fileHeader; BITMAPINFOHEADER infoHeader; FILE* pfin = fopen("D:/rotman.bmp", "rb"); FILE* pfout = fopen("D:/imgSave.bmp", "wb"); //Read the Bitmap file header; fread(&fileHeader, sizeof(BITMAPFILEHEADER), 1, pfin); //Read the Bitmap info header; fread(&infoHeader, sizeof(BITMAPINFOHEADER), 1, pfin); int height, weight; height = infoHeader.biHeight; weight = infoHeader.biWidth; if (infoHeader.biBitCount == 24) { int size = height * weight; RGB *img=new RGB[size]; fread(img, sizeof(RGB), size, pfin); //对图片进行操作 int i; for (i = 0; i<size; i++){ //对图片处理 img[i] = imgOpr(img[i]); } //将修改后的图片保存到文件 fwrite(&fileHeader, sizeof(fileHeader), 1, pfout); fwrite(&infoHeader, sizeof(infoHeader), 1, pfout); fwrite(img, sizeof(RGB), size, pfout); }else { cout << "非24位彩色图" << endl; } fclose(pfin); fclose(pfout); return 0;}
结果
原图:看我头像
处理后图:
转化为灰度图
(实际上还是24位,没有颜色表,RGB占一个像元)处理代码:RGB imgOpr(RGB a){ RGB b; int i = (a.b + a.g + a.r) / 3; b.b = i; b.g = i; b.r = i; return b;}
阅读全文
0 0
- c++读取24位BMP图像并处理
- 读取24位BMP图像并生成JPG缩略图(二)
- 读取24位 BMP 图像并生成 JPG 缩略图
- 【数字图像处理】<纯C++>读取、裁剪、缩放、旋转和存储8位bmp灰度图像
- 【数字图像处理】<纯C++>读取、裁剪、缩放、旋转和存储8位bmp灰度图像
- C/C++ BMP(24位真彩色)图像处理(2)------图像の截取
- C/C++ BMP(24位真彩色)图像处理(4)------图像の旋转
- C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
- C/C++ BMP(24位真彩色)图像处理(2)------图像の截取
- C/C++ BMP(24位真彩色)图像处理(4)------图像の旋转
- C/C++ BMP(24位真彩色)图像处理(5)------图像の线性变换
- opengl读取24位BMP文件为纹理并处理黑色背景为透明
- BMP图像的处理(24位转16位)
- C/C++ BMP(24位真彩色)图像处理(1)------图像の打开与数据区处理
- C/C++ BMP(24位真彩色)图像处理(1)------图像の打开与数据区处理
- 字节对齐在24位bmp图像读取中的使用
- C/C++ BMP(24位真彩色)图像处理(3)------图像の放大缩小(双线性插值)
- C/C++ BMP(24位真彩色)图像处理(3)------图像の放大缩小(双线性插值)
- 常用的网页加载进度条之【定位在头部的进度条】
- 从业务视角看交互设计师的价值
- LeetCode Weekly Contest 51
- 视频编码起源历史发展及现状
- 【翻译】【总结】UGUI:实现鼠标悬停效果的方法
- c++读取24位BMP图像并处理
- 第四周 项目3
- eclipse使用
- 移动端界面中的版式设计原理
- 数据归一化处理
- 户外私密Party| 在大峡谷中聊点平时不能聊的产品干货(报名结束)
- 最小二乘法
- 第4章 入门心法——Windows游戏图形基础(上)
- PMCAFF产品经理社区原创专栏,产品圈的干货看这儿就够了