HBITMAP bmpHandle = (HBITMAP)LoadImage(NULL);
CBitmap bitmap;
bitmapAttach(bmpHandle); //关联位图对象
BITMAP bmp;
bitmapGetBitmap(&bmp); //获取位图信息
CString s;
sFormat("宽度=%d 高度=%d", bmpbmWidth, bmpbmHeight);
因为很多字体都是不等宽的, TEXTMETRIC 中有
LONG tmAveCharWidth; 平均宽度
LONG tmMaxCharWidth; 最大宽度
如果想知道一个字符的宽度,可以用GetTextExtent。
得到屏幕矩形区域:
CDC pDC=::GetDC(NULL);
CDC mdc;//内存DC
int cx=GetSystemMetrics(SM_CXSCREEN)
int cy=GetSystemMetrics(SM_CYSCREEN)
mdcBitBlt(0,0,cx,cy,pDC,0,0,SRCCOPY);
这样屏幕矩形区域就载入到内存DC中
2得到bmp长和宽:
CBitmap Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
BITMAP bmp;
BitmapGetBitmap(&bmp);
int cxBitmap = bmpbmWidth;
int cyBitmap = bmpbmHeight;
3得到每一点的颜色值;
先将位图载入CDC:
CBitmap Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
pDC->SelectObject(&Bitmap);
COLORREF cr;
cr=pDC->GetPixel(x,y);//x,y为像素点坐标
当你选中多个控件时,(注意)在VC的左下方会出现一排按钮(形状就是那种方方块块的样子),那里就有各种对齐,调整功能各个功能你一看就懂的注意必须同时选中多个控件时,左下方的对齐按钮才会可用,否则是灰色的
因为width 和 height都是int类型的,所以结果先会转换为int类型的,之后再将int类型的结果转换为double类型的赋值给asspect变量,所以结果为1
ps:隐式类型转换问题
得到屏幕矩形区域:
CDC
pDC=::GetDC(NULL);
CDC
mdc;//内存DC
int
cx=GetSystemMetrics(SM_CXSCREEN)
int
cy=GetSystemMetrics(SM_CYSCREEN)
mdcBitBlt(0,0,cx,cy,pDC,0,0,SRCCOPY);
这样屏幕矩形区域就载入到内存DC中
2得到bmp长和宽:
CBitmap
Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
BITMAP
bmp;
BitmapGetBitmap(&bmp);
int
cxBitmap
=
bmpbmWidth;
int
cyBitmap
=
bmpbmHeight;
3得到每一点的颜色值;
先将位图载入CDC:
CBitmap
Bitmap;
BitmapLoadBitmap(IDB_BITMAP1);
pDC->SelectObject(&Bitmap);
COLORREF
cr;
cr=pDC->GetPixel(x,y);//x,y为像素点坐标
依据绘制窗口的大小将获得的帧数据进行缩放绘制即可。
StretchDIBits(hMemDC,
0, 0,clientRectright, clientRectbottom, //绘制区域的大小,clientRect用GetClientRect等获得
0, 0, matcols, matrows,//实际帧数据的大小,此处用的opencv保存的数据
matdata,//帧数据内容,此处用的opencv保存的数据
m_bitBuffer, //bitmap结构BITMAPINFO的指针,依据帧数据实际大小和配色进行赋值即可。
DIB_RGB_COLORS, SRCCOPY);
以上就是关于VC++ 获取图片的尺寸大小全部的内容,包括:VC++ 获取图片的尺寸大小、在vc 中 如何得到 字体 font 的宽度、关于vc 将屏幕和bmp图载入到内存中的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)