日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

二进制图片转换成BMP位图(C++)

發布時間:2024/1/8 c/c++ 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二进制图片转换成BMP位图(C++) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


void saveBitmap() ?

{ ?

//一個586*586的二進制圖片

const int height = 586;
const int width = 586;

//新生產bmp圖片數據塊總大小? (bmpWidth?*biBitCount/8+3)/4*4*bmpHeight;
const int size = 588 *586 ;


// Part.1 Create Bitmap File Header ?
BITMAPFILEHEADER fileHeader; ?


fileHeader.bfType = 0x4D42; ?
fileHeader.bfReserved1 = 0; ?
fileHeader.bfReserved2 = 0; ?


fileHeader.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + size + 256 * sizeof(RGBQUAD); ?
fileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD);


// Part.2 Create Bitmap Info Header ?
BITMAPINFOHEADER bitmapHeader = { 0 }; ?


bitmapHeader.biSize = sizeof(BITMAPINFOHEADER); ?
bitmapHeader.biHeight = height; ?
bitmapHeader.biWidth = width; ?
bitmapHeader.biPlanes = 1; ?
bitmapHeader.biBitCount =8;
bitmapHeader.biSizeImage = 0; ?
bitmapHeader.biXPelsPerMeter = 0;
bitmapHeader.biYPelsPerMeter = 0;
bitmapHeader.biClrUsed = 256;
bitmapHeader.biClrImportant = 0;
bitmapHeader.biCompression = 0;


int pad;
int biWidth = 0;
int padWidth = 0 ;


if(bitmapHeader.biBitCount==24)
pad = 4 - ((bitmapHeader.biWidth * 3) % 4);
else
pad = 4 - ((bitmapHeader.biWidth) % 4);
if (pad == 4) ? ? ?
pad = 0; ? ? ? ? ??
padWidth = bitmapHeader.biWidth + pad;


RGBQUAD* pRgbQuards=new RGBQUAD[256];?
for(int i=0;i<256;i++)?
{?
pRgbQuards[i].rgbBlue=i;?
pRgbQuards[i].rgbRed=i;?
pRgbQuards[i].rgbGreen=i;?
}?


int filesize = files.size();
for (int i= 0;i <filesize; i++)
{
FILE *imgp;
string filename = files[i];
fopen_s(&imgp,filename.data(),"rb");


if (imgp == NULL)
{
return ;
}
BYTE *bits = (BYTE *)malloc(586*586);
BYTE *bits0 = (BYTE *)malloc(1);?
BYTE *bits1 = (BYTE *)malloc(1);?
BYTE *bits2 = (BYTE *)malloc(1);?
BYTE *bits3 = (BYTE *)malloc(586*586);


for (int j = 0; j<586*586;j++)
{
memset(bits1, 0xFF, 1);?
memset(bits2, 0xFF, 1);?
fread(bits1,sizeof(char),1,imgp);
fread(bits2,sizeof(char),1,imgp);
bits3[j] = (((*bits1)<<6)| ((*bits2 )>>2));
}?
fclose(imgp);


string Bmpfilename = filename.substr(0,filename.length()- 3) + "bmp";


FILE *output = fopen(Bmpfilename.data(), "wb"); ?
if (output == NULL) ?
{ ?
printf("Cannot open file!\n"); ?
} ?
else ?
{ ?
fwrite(&fileHeader,1,sizeof(BITMAPFILEHEADER),output); ?
fwrite(&bitmapHeader,1,sizeof(BITMAPINFOHEADER),output); ?
fwrite(pRgbQuards,sizeof(RGBQUAD),256,output);?
//fwrite(outbfr,sizeof(BYTE),586*586,output);
char *by = "0x00";?
for (int n= 586; n >0 ; n--)
{
for (int m = 0;m < 586; m++)
{
bits0[0] =bits3[(n-1)*586 +m];
fwrite(bits0,sizeof(BYTE),1,output);
}
for(int i = 1; i <= pad; i++)
{
fwrite(by,sizeof(BYTE),1,output);
}
}
}
fclose(output);
free(bits);?
free(bits0);?
free(bits1);?
free(bits2);?
free(bits3);?
bits = NULL;
bits0= NULL;
bits1 = NULL;
bits2 = NULL;
bits3 = NULL;


string Pngfilename = filename.substr(0,filename.length()- 3) + "png";

LPCWSTR ?Bmpname = stringToLPCWSTR(Bmpfilename);
LPCWSTR ?Pngname = stringToLPCWSTR(Pngfilename);

//將BMP圖片轉換成PNG圖片 ?詳見下一篇博文
BMptoPNG(Bmpname,Pngname); ?
DeleteFile(Bmpname);
}
}

總結

以上是生活随笔為你收集整理的二进制图片转换成BMP位图(C++)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 午夜性色福利视频 | 大尺度摸揉捏胸床戏视频 | 天天av天天爽| 国产在线一卡二卡 | 欧美日韩免费观看视频 | 日日夜夜狠狠爱 | 欧美黄色aaa | 亚洲黄色小说图片 | 国产高清精品在线观看 | 亚洲色偷精品一区二区三区 | 男人在线视频 | 午夜不卡福利视频 | 日韩一区二区三区四区五区 | 午夜视频网站 | 亚洲免费av片 | 中文天堂av | 国产福利片在线观看 | 日韩卡一卡二 | 免费一级特黄特色毛片久久看 | 日本内谢少妇xxxxx少交 | 婷婷综合激情网 | 黄色的视频网站 | 天天爱天天做 | 无罩大乳的熟妇正在播放 | 亚洲成人第一 | 欧美在线视频一区二区三区 | 日韩精品无码一本二本三本色 | 麻豆91精品 | 欧美午夜精品一区 | 在线播放ww| 久久久久五月 | 特种兵之深入敌后 | 久久高清av | 天堂网在线最新版www中文网 | 色狠狠一区二区三区 | 天天操中文字幕 | 最新av中文字幕 | 四虎影视8848hh | 99热在线国产 | www.精品久久 | 日日夜夜艹| 欧美熟妇乱码在线一区 | 办公室摸腿吻胸激情视频 | 久久国产二区 | 亚洲国产日韩在线一区 | 1024手机在线观看 | 亚洲欧美国产一区二区 | 视频一区二区三区在线观看 | 狠狠操狠狠爱 | av操操| 欧美一级淫 | 国产精品自产拍高潮在线观看 | 日本视频免费看 | 激情五月婷婷色 | 91视频精品 | 毛片啪啪啪 | 婷婷色一区二区三区 | 天天爽天天摸 | 97caoporn| 一区二区视频在线观看免费 | 亚州一区二区 | 烈性摔跤 | 最新免费av | www.白虎| 爱爱免费小视频 | 久久久在线观看 | 亚洲色图首页 | 国产主播精品在线 | 中文字幕色哟哟 | 欧美精品一区二区三区久久久竹菊 | 久久91| 香蕉久热 | 国模私拍大尺度裸体av | 致命魔术电影高清在线观看 | 二色av| 6996电视影片免费看 | 日韩欧美在线精品 | 污污视频网站在线免费观看 | 久草中文在线视频 | 久久久精品网站 | 狠狠撸在线观看 | 亚洲综合免费观看高清完整版在线 | 翔田千里一区二区三区av | zzjj国产精品一区二区 | 亚洲成人精品久久久 | 成年人在线观看 | 日本精品一区在线 | 国产最新视频 | 99亚洲国产精品 | 可以看的黄色网 | 亚洲国内精品 | 成人一区二区三区视频 | 午夜成人影视 | 日韩黄色小视频 | 欧美久久一区二区 | 台湾佬美性中文娱乐 | 亚洲天堂伊人 | 欧美黑吊大战白妞欧美大片 | 黄色网址中文字幕 |