谁有VC++项目 关于加载图像(bmp,jpg等都行)的例子,传我一份,939504672@qq.com

如果工程中还有将图像文件的像素数据读入到数组中,另加20... 如果工程中还有将图像文件的像素数据读入到数组中,另加20 展开
 我来答
百度网友9de5b9a
2012-10-02 · TA获得超过894个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:459万
展开全部
例子本机电脑上没有,在公司,给你端代码,可以的
LPCSTR szFileUrl;
IPicture *pIPicture;
OleLoadPicturePath(CComBSTR(szFileUrl),
(LPUNKNOWN)NULL,
0,
0,
IID_IPicture,
(LPVOID*)&pIPicture))

OLE_XSIZE_HIMETRIC hmPicWidth;
OLE_YSIZE_HIMETRIC hmPicHeight;
pIPicture->get_Width(&hmPicWidth); // 获取图像宽度
pIPicture->get_Height(&hmPicHeight); // 获取图像高度
// 转化单位为象素
nPicWidth = MulDiv(hmPicWidth, GetDeviceCaps(GetDC()->m_hDC, LOGPIXELSX), HIMETRIC_PER_INCH);
nPicHeight = MulDiv(hmPicHeight, GetDeviceCaps(GetDC()->m_hDC, LOGPIXELSY), HIMETRIC_PER_INCH);
//下面绑定到位图
OLE_HANDLE phandle;
HRESULT hr = pIPicture->get_Handle(&phandle);
CBitmap bmp;
bmp.Attach((HBITMAP)phandle);

BITMAP tbmp;
bmp.GetBitmap(&tbmp);

//创建数组
byte *pbyBuf = new byte[tbmp. bmWidthBytes*tbmp.bmHeight*];

// 定义位图信息
BITMAPINFO bi;
bi.bmiHeader.biSize = sizeof(bi.bmiHeader);
bi.bmiHeader.biWidth = tbmp.bmWidth;
bi.bmiHeader.biHeight = tbmp.bmHeight;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = tbmp.bmBitsPixel;
bi.bmiHeader.biCompression = BI_RGB;
bi.bmiHeader.biSizeImage = tbmp.bmWidth * tbmp bmBitsPixel/8* tbmp.bmHeight;
bi.bmiHeader.biClrUsed = 0;
bi.bmiHeader.biClrImportant = 0;

//下面将数据的到数组里面
CClientDC hdc(this);
if (!::GetDIBits(hdc, (HBITMAP)bmp->GetSafeHandle();, 0, tbmp.bmHeight, pbyBuf , &bi, DIB_RGB_COLORS))
{
delete [] pbyBuf ;
pbyBuf = NULL;
}

//至于显示你可以用显示bmp的方法显示,因为你已经得到bmp对象了
也可以用
pIPicture->Render(.....);这个函数
归悦欣cf
2012-10-03 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1331万
展开全部
使用IPicture接口,可以加载,如果想获取图像数据,用IPicture接口把图像输出到内存dc中,通过内存dc就可以获取图像数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独立空间
2012-10-03
知道答主
回答量:8
采纳率:0%
帮助的人:1万
展开全部
atl中有个CImage类(#include <atlimage.h>),使用Load函数载入图片,得到一个HBITMAP句柄,如果是基于对话框的程序,添加个CStatic控件,设置显示图片,然后SetBitmap就能显示了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式