收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 怎么用mfc的对话框显示超大图片

收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 怎么用mfc的对话框显示超大图片,第1张

bool readBMPfile(CString pPathname)
{
#define DIB_HEADER_MARKER ((WORD) ('M' << 8) | 'B') //"BM"
CFile f;
if( !fOpen( pPathname, CFile::modeRead) )
return FALSE;
PMYBITMAP pBuff; //位图文件缓冲区指针
BITMAPFILEHEADER bmfHead;
BITMAPINFOHEADER bmHead;
DWORD rdBytes;
UINT tmp;
BYTE pTemp=NULL;
int biWidth,biHeight;
fRead(&bmfHead,sizeof(BITMAPFILEHEADER));
if(bmfHeadbfType != DIB_HEADER_MARKER )
{
AfxMessageBox("not a bmp file !");
return false;
}
fSeek(14,CFile::begin);
fRead(&bmHead,sizeof(BITMAPINFOHEADER));
if ( bmHeadbiCompression)
{
MessageBox("cannot open this compressed file!",NULL,MB_OK);
return false;
}
if ( bmHeadbiBitCount !=24)
{
MessageBox("only can open the bmp file of 24 ",NULL,MB_OK);
return false;
}
int sreWidth,sreHeight;
sreHeight=3000;
sreWidth=3000;

CxImage image;
imageCreate(sreWidth,sreHeight,24,0);
int DataSizePerLine= (bmHeadbiWidth bmHeadbiBitCount+31)/8;
// 一个扫描行所占的字节数
DataSizePerLine= DataSizePerLine/4 4; // 字节数必须是4的倍数
fSeek(bmfHeadbfOffBits,CFile::begin );
pTemp=new BYTE[3];
for ( int ni=0 ; ni<sreWidth;ni++)
{
fSeek(bmfHeadbfOffBits+ ni DataSizePerLine,CFile::begin );
for (int nj=0;nj<sreHeight;nj++)
{
fRead(pTemp,rdBytes);
int R= pTemp[2];
int G= pTemp[1];
int B= pTemp[0];
imageSetPixelColor(nj, ni,RGB(R,G,B));
}
}
if (imageSave( "twwbmp",CXIMAGE_FORMAT_BMP) )
{
}else {AfxMessageBox("保存失败 ,建议减小大小或者更改文件名");}
return true;
}

socket 是有缓冲区大小的,并不是你用buffer=new unsigned char[70000]就可以指定的。
你需要反复读取SOCKET直到数据接收完整,再开始下面的处理。

c++软件开发第三方库大全
1boost
2pthread windows下的posix线程实现
3libcurl 开源网络爬虫库 阿里旺旺中使用到了
4libeay32 OpenSSL Library
5libtidy 解析htm的库
6zlib
7freetype c接口的type2字体处理库
8libmad 编解码mp3的库
9libogg,编解码ogg音频格式的库
10libsnd 开源的编解码十多种音频格式的库
11ffmpeg 音频视频处理的库
12Freeimage,Cximage,Devil 这3个都是用来处理图形的库
13libpng,libjpeg,基本同上
14angelscript 类似lua的脚本引擎 其脚本风格类似于标准c语言
15flac/flac++编解码flac音频格式的库
16tinyxml,rapidxml,libxml 关于xml解析方面的
17luaplus,luabind涉及绑定lua和c++的库
18ode,bullet 开源的物理引擎库
19timidity可以把mid音频格式转化为wav格式的库
20vlc类似ffmeg的库
21zthread类型boost-thread,pthread的c++风格的多线程库
22sigc++,sigslot信号插槽库 类型的有boost中的signal
23SDL 简单的音频视频库
24hge简单的使用ddraw的2维游戏小引擎
25opencv开源的处理图形的库
26mygui,cegui 游戏上使用的GUI系统
27鬼火游戏引擎,Orge,都是开源的游戏中间件
28Wxwidget开源的跨平台,类似MFC
29QT
30loki实验性质的c++库
31ace网络通信库
32fmod游戏音效引擎
33sqlite 开源的桌面数据库


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10299489.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-07
下一篇 2023-05-07

发表评论

登录后才能评论

评论列表(0条)

保存