存在可以成功显示的HBITMAP。我想获取位图的一部分(由rect指定),下面的代码也是如此,但返回的位图始终是黑色的。代码有什么问题吗?谢谢。
HBITMAP GetSelectedBitmap(HBITMAP p_bitmap, int x, int y, int width, int height){
HDC l_srcDc = ::CreateCompatibleDC(NULL);
::SelectObject(l_srcDc, p_bitmap);
HDC l_dstDc = ::CreateCompatibleDC(l_srcDc);
HBIT
我的目标是有一个程序,屏幕捕捉一个游戏,然后从代码中读取图片。
我对win api +从来没有使用过位图很陌生,所以我有一个困难的时刻,我是一个完整的菜鸟。
我必须屏幕捕获的代码是(在堆栈溢出时找到的):
HDC hScreenDC = GetDC(NULL);
// and a device context to put it in
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
int width = GetDeviceCaps(hScreenDC, HORZRES);
int height = GetDeviceCaps(hScre
我正在尝试将HBITMAP转换为Gdiplus位图。我的代码得到了一个截图,其中包含我从google找到的一些代码,并将其放入HBITMAP中。我想使用Gdiplus获得RGB值(特别是argb)。
获取屏幕截图的代码可以正常工作,但是将HBITMAP转换为位图的代码抛出了大量疯狂的链接器错误。下面是我的代码:
HDC hScreenDC = CreateDC((LPCWSTR)"DISPLAY", NULL, NULL, NULL);
// and a device context to put it in
HDC hMemoryDC = CreateCompati
我有一个应用程序,它将一个非常大的数据集写成位图。~500MB我从上到下写数据补丁。由于BMP文件结构的性质,它必须在写入磁盘后进行翻转。(我这样写是因为我假设翻转位图将是一种常见的应用程序,并且我会找到库来完成这项任务)
我正在使用我在互联网上找到的代码片段来翻转位图。这一条:
// GetInvertedBitmap - Creates a new bitmap with the inverted image
// Returns - Handle to a new bitmap with inverted image
// hBitmap - Bitmap to
我正在使用图片控件来显示四个小的彩色bmps。我有一个成员函数,可以将bmp设置为我想要的颜色。问题是,当我使用测试按钮点击函数多次运行我的函数SetColor时,图片控件消失了,对话框表现得很奇怪,比如拖动时没有边框。如有任何帮助或建议,将不胜感激。 void CRLoaderDlg::SetColor(int ColorID, int PictureID) {
// data structure for picture/PictureID arrangement
CStatic *pointertopicture[4];
// check for Pic
我在这里找到了一个屏幕截图代码,但当我试图构建它时,它不会构建,所以我自己修复了代码,现在它构建了,但我认为它不能工作,因为当调试VS时,它不能从hBitmap读取(没有数据?)。我是一个新手程序员,所以我真的不知道在这一点上做什么…我可能没能正确修复代码...
我很感谢你的帮助。
#include <Windows.h>
int main()
{
// get the device context of the screen
HDC hScreenDC = CreateDC(L"DISPLAY", NULL, NULL, NULL);
在以下场景中,我希望使用GDI+方法将保存到文件中:
HBITMAP hBitmap = CreateCompatibleBitmap(hDC, 200, 200) ;
...
//hBitmap is a DDB so I need to pass an HPALETTE
Gdiplus::Bitmap(hBitmap, ???HPALETTE??? ).Save(L"file.png", ...) ;
问题是,当位图不是独立于设备的位图时,构造函数会请求一个HPALETTE。
我从哪里得到必要的HPALETTE?
后续行动:
其中一个答案建议将NULL作为HPAL
我的Qt上有一系列QLabel对象,我用HBITMAP对象填充它们。这些HBITMAP是内存中的缓冲区,它们不存在于磁盘上。
现在我使用QPixmap的fromWinHBITMAPto create aQPixmapwhich I can then pass to theQLabelssetPixmap`函数。
现在,问题是,QLabel中的当前图像会发生什么情况,当我用另一个图像覆盖它时,它会留在内存中吗?它会被删除吗?
我怀疑它没有被正确删除,因为我的程序在运行了大约一个小时后增长到了很大的比例。(1.7 in )内存。
执行转换的代码是:
//buffer is a map of QLa