资源简介
C语言实现了对BMP图像的读取、存入、水平翻转、竖直翻转、马赛克模糊处理、灰度二极化处理,有代码注释
代码片段和文件信息
#include
#include
#include
#include
#include
#pragma pack(1)
void CASE1(char *p);
void CASE2(char *p);
int CASE3();
void CASE4(char *p);
void CASE5();
void CASE6();
void CASE7();
void CASE8();
char* GetFilename(char *p);
void bubblesort(int *buf int n);
BITMAPFILEHEADER fileHead;
BITMAPINFOHEADER infoHead;
RGBQUAD *pColorTable;
int pColorTableSize = 1024 lineByte;
unsigned char *pBmpBuf *pBmpBuf1 *p;
FILE *fp *fp1; // 定义一个文件指针
unsigned char *p1 *p2;
int main()
{
int order = 0;
char dizhi[100] = { 0 } chucun[100] = { 0 };
printf(“*************************************************\n*\tSimple Bitmap Processing System \t*\n*\t\t\tby08A18321 梁炯鹏 \t*\n*\t\t\tby08A18323 严子逊 \t*\n*\t\t\tby08A18324 卢甲浩 \t*\n*\t\t\tby08A18332 苑雨康 \t*\n*************************************************\n“);
while (1)
{
printf(“\nlast operation:%d“ order);
printf(“\nCurrent Bitmap File:%s\n“ dizhi);
printf(“1. Read Bitmap File From File \n2. Print Bitmap File Information \n3. Save Processing Results to File \n4. Display Saved File \n5. Image Processing Algorithm1(水平镜像)\n6.Image Processing Algorithm1(垂直镜像)\n7. Image Processing Algorithm2(马赛克) \n8. Image Processing Algorithm3(bmp图像二值化处理) \n9. Quit \nPlease Choose(1-9): “);
scanf(“%d“ &order);
switch (order)
{
case 1:
CASE1(dizhi);
break;
case 2:
CASE2(dizhi);
break;
case 3:
CASE3();
break;
case 4:
CASE4(dizhi);
break;
case 5:
CASE5();
break;
case 6:
CASE6();
break;
case 7:
CASE7();
break;
case 8:
CASE8();
break;
case 9:
return 0;
}
}
}
void CASE1(char *p)
{
printf(“输入地址: “);
scanf(“%s“ p);
if ((fp = fopen(p “rb“)) == NULL)
printf(“Can‘t open the file!\n“);
else
{
fseek(fp 0 0);
fread(&fileHead sizeof(BITMAPFILEHEADER) 1 fp);
fread(&infoHead sizeof(BITMAPINFOHEADER) 1 fp);
lineByte = (infoHead.biWidth*infoHead.biBitCount / 8 + 3) / 4 * 4;
pBmpBuf = (unsigned char*)malloc(lineByte*infoHead.biHeight);
pBmpBuf1 = (unsigned char*)malloc(lineByte*infoHead.biHeight);
pColorTable = (RGBQUAD*)malloc(sizeof(RGBQUAD) * 256);
fread(pColorTable sizeof(RGBQUAD) 256 fp);
fread(pBmpBuf lineByte*infoHead.biHeight 1 fp);
fclose(fp);
printf(“File open successfully!\n“);
}
}
void CASE2(char *p)
{
// int i = sizeof(BITMAPFILEHEADER);
// int j = sizeof(long);
printf(“\nFileName\t\t%s \n“ GetFilename(p));
printf(“FileSize\t\t%d Bytes \n“ fileHead.bfSize);
printf(“PaletteSize\t\t%d Bytes \n“ (int)pow(2 infoHead.biBitCount) * 4);
printf(“ImageSize\t\t%d Bytes \n“ infoHead.biSizeImage);
printf(“Width x Height x Bit\t%d Pixels x %d Pixels x %d Bits \n“ infoHead.biWidth infoHead.biHeight infoHead.biBitCount);
}
char* GetFilename(char *p) //获得文件名
{
int x = strlen(p);
char ch = ‘\\‘;
char *q = st
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2019-07-05 14:48 交互\
目录 0 2019-05-09 18:32 交互\.vs\
目录 0 2019-07-05 14:37 交互\.vs\交互\
目录 0 2019-05-09 18:32 交互\.vs\交互\v15\
文件 24064 2019-02-05 11:04 交互\.vs\交互\v15\.suo
文件 33153024 2019-02-05 11:04 交互\.vs\交互\v15\Browse.VC.db
目录 0 2019-05-09 18:32 交互\.vs\交互\v15\ipch\
目录 0 2019-05-09 18:32 交互\.vs\交互\v15\ipch\AutoPCH\
目录 0 2019-05-09 18:32 交互\.vs\交互\v15\ipch\AutoPCH\13cdc1bbd7e24841\
文件 41287680 2019-02-05 11:03 交互\.vs\交互\v15\ipch\AutoPCH\13cdc1bbd7e24841\MAIN.ipch
目录 0 2019-05-09 18:32 交互\.vs\交互\v15\ipch\AutoPCH\f3c5893a601d2ce5\
文件 2031616 2019-01-13 20:43 交互\.vs\交互\v15\ipch\AutoPCH\f3c5893a601d2ce5\MAIN.ipch
目录 0 2019-07-05 14:37 交互\.vs\交互\v16\
文件 38400 2019-07-05 14:52 交互\.vs\交互\v16\.suo
文件 33431552 2019-07-05 14:52 交互\.vs\交互\v16\Browse.VC.db
目录 0 2019-07-05 14:37 交互\.vs\交互\v16\ipch\
目录 0 2019-07-05 14:37 交互\.vs\交互\v16\ipch\AutoPCH\
目录 0 2019-07-05 14:37 交互\.vs\交互\v16\ipch\AutoPCH\38977ed9fb966cc9\
文件 42532864 2019-07-05 14:37 交互\.vs\交互\v16\ipch\AutoPCH\38977ed9fb966cc9\MAIN.ipch
目录 0 2019-07-05 14:37 交互\Debug\
文件 48053 2019-07-05 14:37 交互\Debug\main.obj
文件 420864 2019-02-01 18:14 交互\Debug\vc141.idb
文件 110592 2019-02-01 18:14 交互\Debug\vc141.pdb
文件 240640 2019-07-05 14:37 交互\Debug\vc142.idb
文件 102400 2019-07-05 14:37 交互\Debug\vc142.pdb
文件 552 2019-01-07 01:37 交互\Debug\交互.Build.CppClean.log
文件 47616 2019-07-05 14:37 交互\Debug\交互.exe
文件 369704 2019-07-05 14:37 交互\Debug\交互.ilk
文件 85 2019-07-05 14:38 交互\Debug\交互.log
文件 495616 2019-07-05 14:37 交互\Debug\交互.pdb
目录 0 2019-07-05 14:38 交互\Debug\交互.tlog\
............此处省略12个文件信息
相关资源
- EAN13条码生成(C语言+VS2010)[包含EA
- MFC画图板,可以画一些基本图形,如
- 基于MFC的bmp图像处理268237
- 计算BMP24位真彩色图像PSNR的C++小程序
- mfc打开并显示BMP图片
- VC打开多种图像格式bmpjpggiftifraw
- 24位BMP图像用C++实现平移、旋转、镜像
- VC6基于对话框的BMP灰度图片显示和轮
- 数字图像处理 MFC bmp格式图片打开与保
- DICOM图片转换BMP的C++代码
- VC实现虚拟打印机的框架源代码
- [毕业分享] MFC实现数字图像处理软件
- VC++单文档视图打开bmp图片
- 在内存中将bmp转JPG
- vc++调用usb摄像头,进行拍照,保存为
- Bmp2jpeg图片格式转换
- C语言读取BMP图像,并进行反色操作
- BMP180气压计STM32例程+51例程+数据手册
- 经典数字图像测试图灰度图,jpg,b
- 图像直方图均衡算法的实现 bmp格式
- bmp24位彩色图像转8位灰度图像纯C++
- 用VC++实现打开并显示bmp图片
- C++生成二维码并保存成BMP图片
- MFC 图像处理之灰度直方图显示BMP图片
- 数据结构C语言代码实现
- MFC动态加载和静态加载bmp类型图片
- MFC显示BMP格式图片
- 基于MFC实现BMP的显示24色变灰
- C语言的png和jpeg图片格式转换为bmp格式
- 隋连升主讲+谭浩强《c语言程序设计》
评论
共有 条评论