资源简介
自己修改读入图片路径
代码片段和文件信息
#include “Windows.h“
#include
#include
//using namespace std;
// 动态申请二维内存(指针数组)的函数
template
void NewArr(T**& Array int row int line)
{
Array = new T*[row];
for (int i = 0; i != row; i++)
{
Array[i] = new T[line];
memset(Array[i] 0 sizeof(T) * line);
}
}
// 动态释放二维内存的函数
template
void DeleteArray (T**& Array int line)
{
for (int i = 0; i < line; i++)
{
delete[] Array[i];
Array[i] = NULL;
}
delete[] Array;
Array = NULL;
}
// 函数说明
// path 文件图片的绝对地址
// bf bi作为两个输出参数 函数内部完成初始化
// lpBit 图像数据 一个超级大的二维数组(一级指针数组) 可以丢一个空指针进去 函数内部代为申请内存
void ReadBitmap(const char* path BITMAPFILEHEADER& bf BITMAPINFOHEADER& bi unsigned char**& lpBit)
{
FILE* fp = fopen(path “rb“);
if (fp == NULL)
{ printf(“没有找到需要转换的图片“);
exit(0);
}
fread(&bf sizeof(BITMAPFILEHEADER) 1 fp); // 写入文件头
fread(&bi sizeof(BITMAPINFOHEADER) 1 fp); // 写入信息头
NewArr(lpBit bi.biHeight (bi.biWidth * 3 + 3) / 4 * 4);
for (int i = 0; i < bi.biHeight; i++)
for (int j = 0; j < (bi.biWidth * 3 + 3) / 4 * 4; j++)
fread(&lpBit[i][j] sizeof(unsigned char) 1 fp); // 每次读入一个字节
fclose(fp);
}
// 函数说明
// path 文件图片的绝对地址
// bf bi作为两个输入参数
// lpBit 图像数据 经过ReadBitmap初始化后作为输入参数
void WriteBitmap(const char* path BITMAPFILEHEADER& bf BITMAPINFOHEADER& bi unsigned char**& lpBit BYTE limit)
{
FILE* fp;
fp = fopen(path “wb“);
if (fp == NULL)
exit(0);
BITMAPFILEHEADER newbf; // 初始化文件头
memcpy(&newbf &bf sizeof(BITMAPFILEHEADER));
int newbfWidth = (bi.biWidth + 3) / 4 * 4; // 4字节补齐
int newbfImageSize = newbfWidth * bi.biHeight; // 位图数据实际大小
newbf.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHE
- 上一篇:C语言上机考试经典100题--南开大学出品
- 下一篇:操作系统的模拟实现 C++编写
相关资源
- MFC中嵌入显示opencv图像
- 数字图像处理 邻域平均法 C语言
- c语言写的图像插值算法
- 基于VC++的图像修复源代码
- 激光雷达UTM-30LX图像采集程序及数据
- VTK医学图像三维重建
- 山东大学图像学实验openGL读取off文件
- 批量16位图像转8位
- 灰度预测模型C语言源代码
- C语言实现二值图像连通区域标记,可
- CvImgCtrl 演示程序
- 图像分割和边缘检测完全C语言源代码
- C语言写的简单均值滤波算法
- VC图像处理系列之一——图像读写篇
- 边界跟踪算法的实现,图像处理 c++
- 数字信号处理课设报告 低比特率图像
- 读bmp图像像素存txt并输出bmp图像
- 功能非常全的数字图像处理程序含源
- C++ DES图像加密与解密
- 图像点运算VC++程序
- C++实现灰度图像的边缘检测、提取及
- emgucv&opencv图像处理函数说明
- vc++ 彩色图与灰度图的转换
- C图像读写源代码.zip
- 直方图平滑与双峰分布二值化
- OpenCV+C++图像处理项目14个
- 图像融合 NSCT算法 matlab
- 图像序列编码为MJPEG视频文件
- 图像拼接使用VC++实现完成两幅又重叠
- 计算图像的平均灰度值
评论
共有 条评论