• 大小: 41.88MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-03
  • 语言: C/C++
  • 标签: bmp  Cyuyan  

资源简介

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个文件信息

评论

共有 条评论