mfc 查看像素,放大显示几个点

mfc 查看像素,放大显示几个点,第1张

Graphics graphics(m_hWnd);
Image img(L"xxxxjpg");
graphicsTranslateTransform(600,10);//平移
graphicsRotateTransform(25);//旋转
graphicsDrawImages(&img,0,0,a,b);//a,b放大的大小
另外,站长团上有产品团购,便宜有保证

给你个思路具体还是自己写吧:
1通过按钮点击后打开filedialog获取路径
2用cbitmap加载这个位图(如果不是bmp建议用cimage加载)
3获取要显示的位置(在对话框的onpain函数中用stretchblt拉伸或者压缩到你指定的位置)
4删除设置个标志位当这个标志位TRUE 时刷新界面不去stretchblt
这只是个思路如果想学点东西建议自己写,如果只是使用可以去网上下一些例子如显示的EDIT等当然也可以通过学习他们如何写的模仿下

噗,352x288,这不是pal制式的vcd的分辨率吗
其实本来看到“急啊”什么的实在很烦躁,
不过看你也急了一天没人回了……

HBITMAP hBmp;
HDC hDC;
BITMAPINFO biBmp;
int nBmpWidth, nBmpHeight;
int i, j;
hBmp = (HBITMAP) LoadImage(NULL, TEXT("c:\\11bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
hDC = GetDC(NULL);
hDC = CreateCompatibleDC(hDC);
ZeroMemory(&biBmp, sizeof(biBmp));
biBmpbmiHeaderbiSize = sizeof(biBmpbmiHeader);
GetDIBits(hDC, hBmp, 0, 0, NULL, &biBmp, DIB_RGB_COLORS);
nBmpWidth = biBmpbmiHeaderbiWidth;
nBmpHeight = biBmpbmiHeaderbiHeight;
SelectObject(hDC, (HGDIOBJ) hBmp);
for (j = 0; j < nBmpHeight; ++j) {
    for (i = 0; i < nBmpWidth; ++i) {
        COLORREF c;
        c = GetPixel(hDC, i, j);
        //于是你拿到这个像素的颜色存入c了。然后爱干嘛干嘛……
    }
}    
DeleteObject((HGDIOBJ) hBmp);
DeleteDC(hDC);

另:32位不确定gdi能不能搞得定,24位没问题就是了。32位如果gdi搞不定的话,你用gdi+吧。没有直接写gdi+的代码是因为现在好多人还在用vc6然后又不会装、配gdi+的库,万一遇到了实在很自找麻烦……


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存