问题标签 [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.

0 投票
0 回答
444 浏览

vba - GetDIBits 失败。它只返回像素的零值

我一直在寻找 GetDIBits,似乎只能在 Excel 2016 以外的所有其他应用程序中找到讨论。

对于所有像素值,我不断返回 0。我不知道使用 Image1.Picture.Handle 是否是 hdc 的正确语句,我不知道 Image1.Picture 是否是 hbitmap 的正确语句。

我什至无法使用 SetDIBits 函数将结果显示在图像框中。

Web 上的大部分内容都使用 PictureBox、Autodraw 以及 Excel 中似乎没有的东西。

谁能帮我解决这个问题。这将不胜感激。我会发布所有声明,但我不想被网站引导,我的问题太长了。提前致谢。

0 投票
2 回答
822 浏览

c++ - 多次调用后 LoadBitmap 失败

在这个函数中,经过大约 90 次调用(它在循环中调用,其想法是每次加载单独的图像,但为了简单起见,我将其保留为一个图像)。全局变量现在更改为本地变量。

我希望有人能提出一个想法,有什么问题。GetLastError 返回“8”,这对我来说毫无意义。

0 投票
0 回答
824 浏览

c++ - CImage内存泄漏?

我一直在尝试使用存储在 HBITMAP 中的屏幕截图并将其输出为 PNG 图像。

但是,代码中似乎存在内存泄漏,因为内存似乎没有被正确释放。

此代码有效,但似乎没有清除内存。根据任务管理器中的私有内存集列,image.Destroy 根本不会影响内存,而 image.ReleaseGDIPlus 似乎会清理一些数据。HBITMAP 来自先前的函数,并在代码中的稍后位置被 GlobalFreed 与此函数分开。

是不是少了一行?

0 投票
1 回答
301 浏览

c# - 从 CUDA 中的指针加载图像并导出 dll

我对这种东西很陌生。我正在尝试创建一个等效于图像直方图函数的函数。我正在使用 Windows 窗体应用程序来显示直方图(并加载图像)和 CUDA/c++ 来制作直方图。我从一开始就提到我没有使用 openCV、glut、OpenGL 或任何其他第三方库。进行中...我正在尝试将位图传递给非托管 C++ DLL。这里的问题是我现在不知道如何在 c++ 代码中引用该位图。(甚至如何从中获得RGB)。代码片段:

C# :

DLL导入:

c++:

0 投票
2 回答
986 浏览

c++ - c++ - 从 ARGB 到灰度的转换 - 结果很好,但颠倒了

我写了一个小函数来将 ARGB 中的位图转换为灰度。转换本身效果很好,但结果是颠倒的。我找不到错误。

代码:#include #include

这是图片:

基本图

转换后的图片,没有设置A--只有RGB: 不设置 Alpha-Value 的转换

转换后的图片,如代码所示(设置Alpha-Value: 通过设置 Alpha-Value 进行转换

嗯,我不知道,为什么他将“透明”设置为黑色......

0 投票
2 回答
478 浏览

c# - 无法将 System.Drawing.Bitmap 传递给 C++ DLL

我正在用 C++ 编写一个 DLL 来搜索位图中的子图片。执行 C++ 部分时,HBITMAP无效。

这是我的代码:

C#:

C++:

好吧,C++ 库函数直到现在还没有做任何事情。那是因为HBITMAP无效。在 C# 中,System.Drawing.Bitmap是有效的。

在断点处

当我输入“mIng.”时,没有自动完成功能。

我错过了什么吗?

0 投票
0 回答
197 浏览

c++ - 将图像保存到剪贴板(从 Javascript 到 C++)

我目前正在将图像保存到剪贴板。base64 数据来自浏览器 (base64),通过 WebSocket 传递并由 C++ 应用程序处理。

我的问题是在 C++ 端将 base64 代码转换为字节数组,然后将 HBITMAP 转换为 BITMAP,然后将其保存到剪贴板。

我使用CryptStringToBinaryA将 base64 (len: 95000) 转换为字节数组 (len: 70000)。

然后,从字节数组中,我使用CreateDIBSection来获取HBITMAP

这是导致问题的原因,因为ppvBits 返回 0

当我尝试执行GetObject时,它返回 0。

我还尝试在 GetObject 之后执行 GetLastError。我收到了这个错误。

当该文件已存在时无法创建该文件。

有谁知道可能是什么问题?

0 投票
2 回答
1699 浏览

c++ - 在保持透明背景的同时调整 HBITMAP 的大小

我有一个应用程序可以加载具有透明背景的图像,然后我使用set usingStretchBlt将其调整为所需大小(我尝试使用其他模式,在保持透明度不变的同时,也使调整后的图像看起来“难看” )。 但是,将透明背景替换为不适合显示图像的窗口背景的颜色(黑色)。 所以我有两个选择: 1)用窗口的背景颜色替换图像的透明背景,然后使用调整它的大小 2)在保持背景透明度的同时调整它的大小(首选选项) 如何执行这些选项中的任何一个(替换透明度或在保持透明度的同时调整它的大小)使用普通的 WinAPI?HALFTONESetStretchBltMode
StretchBlt


StretchBlt


我尝试寻找可以提供的 WinAPI 函数功能,但我没有找到。

0 投票
1 回答
311 浏览

c++ - 如何从 HBITMAP 获取 RGBQUAD?

我目前正在学习windows编程并编写一个小型图像搜索程序。

当我有图像的 HBITMAP 句柄时,我想获取 (x, y) 像素的 (R, G, B) 数据。

所以,我试着写这样的东西

我怎么写这个?

我见过 GetPixel 函数,但它对我的程序来说太慢了:(还有其他更胖的方法吗?

0 投票
1 回答
95 浏览

c++ - 无法从 glReadpixels 创建 HBITMAP

所以这是我的代码的一部分,我想做的是从 OpenGL 帧捕获中制作一个 HBITMAP。

但我的 (HBITMAP)hdm 始终为 NULL。也许还有另一种方法可以做到这一点或有什么问题?我猜 CreateBitmap 会自己分配内存,所以错误一定不在这里。输出数组似乎很好。

我也尝试过这里的代码:Creating a HBITMAP from glReadPixels但效果不佳,仍然为 NULL。

对此有任何帮助将不胜感激!