问题标签 [hbitmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 将 PNG 加载代码转为使用 FILE 而不是本地资源
我正在开发一个小软件,旨在直接在桌面上显示 png 文件。我找到了一种使用 HBITMAP 结构来完成后面部分的方法。然而,到现在为止,我已经花了几天时间寻找一种将 .PNG 文件加载到这样的 HBITMAP 的方法。
我最终找到的代码(我也可以编译)是此页面中的代码:
http://logiklabs.tumblr.com/post/22946728048/how-to-load-an-image-resource-into-a-hbitmap
认为它会完美地工作。我的问题是虽然这个是为了使用已经附加的 .png 文件。
然而,我需要能够在运行时使用来自(在编译时)未知位置的文件。
那么我怎样才能改变那个脚本来实现呢?不幸的是,我的 C++ 知识不是最好的,这些相关函数的 MS 文档也没有真正的帮助:/
我会非常非常感谢!
c++ - 将 HBITMAP 绘制到分层窗口上。怎么了?
大家好,美好的一天,
我的最终目标是在屏幕上绘制一个包含 alpha 的 PNG 文件——这意味着不是在自己的窗口中,而是在桌面上的某个地方。将 PNG 加载到 HBITMAP 中的部分现在可以工作(以不同的方式进行测试),但我无法将它包括 alpha 在内。
据我所知,最好的方法是使用分层窗户。所以我做了很多工作来重做几个例子和小教程。
以下代码编译没有问题并且没有提示任何消息(这意味着永远不会调用 showError("#") 函数)。
然而屏幕上没有任何可见的东西:/
抱歉,这么长...希望有人愿意至少快点看一下..
顺便说一句,如果我在 UpdateLayeredWindow 中使用 ULW_OPAQUE 而不是 ULW_ALPHA,则会出现一个大小合适的黑色窗口,因此认为问题必须是与 PAINTSTRUKT 或 BitBlt 函数相关的最小问题。但是我尝试了很多方法而没有任何改变.
希望有人可以提供帮助。非常感谢您!
c++ - 正确关闭WinAPI HANDLEs(避免重复关闭)
我有一些手柄,我需要关闭它。代码中有一些地方可能会关闭句柄。那么,这是关闭句柄的正确方法吗?
关于位图句柄也有同样的问题:
编辑:我认为,有一些误解。我知道CloseHandle
是为了关闭手柄。我想知道关闭手柄的正确方法。删除指针也会出现类似的情况。
因此,以下代码意味着问题:
这种情况有一些解决方法。我们需要像这样定义bar
&duck
函数:
所以我们避免重复删除 foo。问题是关闭句柄的正确方法是什么?我的意思是,如何避免重复关闭句柄问题?
c++ - C++ 中没有 CImage 的 HBITMAP 到 JPEG/PNG
我有一个要保存到 JPEG/PNG 流或字节数组中的 HBITMAP。问题是我使用 mingw 作为我的编译器,所以我不能使用 CImage.. 这会让我的生活更轻松。
我可以毫无问题地从位图中获取像素,但我不知道如何以 JPEG/PNG 格式访问它们。
我从哪里开始?
c++ - 从分层窗口获取 HBITMAP - 不正确的数据
我创建了一个分层窗口(带有 WS_EX_LAYERED),大小约为 400X300 像素。
绘制窗口时(使用UpdateLayeredWindow)一切正常。
问题是绘制后我无法获取窗口的 HBITMAP。当试图通过窗口的 HDC 获取 HBITMAP 时,我得到一个空(黑色)位图,它是我整个桌面的大小(1920X1080 像素,400X300 像素)。
有人知道是否有可能获得分层窗口的 HDC\HBITMAP 吗?
代码示例
这是我如何绘制分层窗口的代码(同样,效果很好):
这是我如何捕获窗口的位图并将其保存到文件的代码:(注意:它适用于“普通”窗口,例如计算器)
谢谢!
winapi - 从 HBITMAP 获取字节
如果给定 HBITMAP 指针,并且我的应用程序是控制台应用程序,如何从 hbitmap 获取图像字节。我尝试使用需要诸如 HDC 之类的参数的 GetDIBits,但我无法获得。
编辑:我从文件加载位图:
我将 HBITMAP 传递给函数并期望得到另一个处理图像的 HBITMAP:
其中 func 是:
问题是如何从 HBITMAP 获取图像字节。
c++ - 从 Win32 项目中的 *.bmp 文件加载 HBITMAP
是否可以仅使用 WINAPI 函数将 *.bmp 文件加载到 Win32 项目中的 HBITMAP 中?
c++ - 来自 HBITMAP 的 QImage
在我的纯 Windows 程序中,我使用了一个第三方库,它返回一个HBITMAP
.
有没有办法QImage
从其内容初始化 a ,即将其转换为 a QImage
?
c++ - 如何将位图数组从托管 C++ 传递到非托管 C++
System::Drawing::Bitmaps
我目前在托管 C++ 代码中有一个 dll数组。我希望能够从非托管(本机)C++ 调用托管 C++ 中的方法。问题是如何将数组传递回非托管 C++?
我可以调用GetHbitmap()
托管 C++ 位图,该位图返回IntPtr
. 我应该传递一个 IntPtrs 数组吗?不太确定最好的方法来做到这一点。所以要清楚我有这个:
托管 C++ 方法:
是一个 HBITMAPS 数组吗?如果是这样,您如何将IntPtr
hBmp 转换为该数组?
托管 C++ 代码运行良好,并且正确获取位图数组。但是现在当非托管 C++ 调用 GetBitmaps 方法时,我需要将这些位图返回到非托管 C++。我不知道我应该传入什么类型的变量,然后一旦我传入它,我该怎么做才能将它转换为非托管 C++ 可以使用的类型?
windows - 不使用 QPixmap 将 HBITMAP 转换为 QImage
我在辅助线程中从 Windows 中提取文件的缩略图,输出是 HBITMAP。现在我必须将其转换为 QImage 以将其发送回主线程。您可能已经知道,在非 gui 线程中使用 QPixmap 会导致运行时错误和编译时警告。我知道是因为我确实尝试过使用它,但它给了我随机错误。
任何想法,将不胜感激。