问题标签 [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++ - C++ 原始 HBITMAP 到 png 结构数据
所以我有一个HBITMAP
对象,它包含我需要通过套接字(Winsock)发送到服务器的所有像素。
问题是它需要转换为 PNG 数据,所以只需要发送一个结构,服务器只需将所有数据写入文件。
我能找到的唯一方法就是写入文件,这不是我想要的。另外我宁愿不再使用任何库,这可能吗?
c++ - 我的 hdc/hbitmap 的内存泄漏在哪里?
所以我注意到我的部分代码在被调用时会泄漏大量内存,我试图找出它泄漏的位置或原因,但我陷入了死胡同。
我已尝试使用 Visual Studio 2017 调试器拍摄快照以找出泄漏发生的位置,但据此没有任何重大泄漏。我也试过 Deleaker,我曾经工作过,它告诉我我泄露了 HDC 和 HBITMAP,但无法告诉我有多少内存。
第一个函数是 GetScreenBmp 可能泄漏的地方,但我不是正确地释放了所有东西吗?我知道我没有删除 hBitmap 但我需要返回它。那是内存泄漏的地方吗?
第二部分是这段代码,我不完全确定我是否正确删除了所有内容。
如果这是之前已经回答过的问题,或者答案很容易被搜索到,我很抱歉,但我已经尝试了几个小时来修复它。
c# - 在图片控件中显示传输的 HBITMAP
我有一个相机,它有一个用 C# 开发的库和一个用 C++ 6 编写的客户端应用程序。我创建了一个 C# COM 包装器来将两个系统链接在一起,它工作得很好。
在 C# COM 包装器中,我有一个System.Drawing.Bitmap
对象,其中包含来自相机的当前帧。
在 C# COM 包装器中,我有一个函数public void GetFrameHandle(ref IntPtr hBitmap, [MarshalAs(UnmanagedType.SysInt)] ref int width, [MarshalAs(UnmanagedType.SysInt)] ref int height)
,它基本上将 HBITMAP 从帧位图获取到 C++
这似乎有点工作,我可以看到 C++ 中的图像,但由于像素格式不正确,它都是乱码。
如何从 C++ 中的 HBITMAP 确定像素格式,然后在图片控件中显示正确的图像?
我已经进行了很多调查,似乎我需要从传输的 HBITMAP 创建一个新的 BITMAP,然后从正确的像素格式创建一个新的 HBITMAP,然后使用它来填充图片控件。
我不太确定如何开始这个过程
C# COM 服务器:
C++ 客户端:
不确定如何进行此操作。
有趣的是,我从 C# 代码中保存的 frame.bmp 也是乱码。我认为这两个问题是相关的,但我不能在这里加入这些点。
感谢您提供任何帮助。
windows - 在 Winapi 中创建 24 位 BITMAP
我正在使用以下代码将 ImageMagick 图像转换为 32 位 HBITMAP:
它运作良好,但我想通过使用深度较低的图像来节省一些内存。不幸的是,我什至无法使用 24 位图像。我修改了我的代码,如下所示:
但似乎这段代码无法生成有效的位图。我究竟做错了什么?
winapi - 创建与设备无关的位图而不分配内存
这是我目前在我的应用程序中加载图像的方法:
它工作得很好,但我想避免两次分配内存 -::FreeImage_Load
已经以适合 dib 的方式存储数据。有没有一种调用方式CreateDIBSection
可以阻止分配并强制以这种方式创建的 dib 使用我提供的缓冲区?如果没有,是否有另一种方法可以做到这一点?
似乎提供NULL
而不是**ppvBits
阻止分配 - 以后有没有办法修改缓冲区地址?我也尝试过修改hSection
参数,但以这种方式创建的 dib 不正确。
c++ - 我无法使用 win32 从文件夹加载图像
我是win32的新手。我将位图图像“logo2.bmp”放入 .vcxproj 所在的目录中。但是,当我使用 LoadImage() 函数时,似乎没有加载任何内容。
我在网上查了我的问题,但修改后图像仍然无法加载。
我希望输出是在 Windows 上成功显示的位图图像,但是显示了“错误”文本框,但没有显示图片。
c - C:尝试将 HBITMAP 转换为 .bmp 文件时出现问题
我正在创建一个将屏幕截图保存到.bmp
文件中的功能,我已设法将屏幕保存到一个文件中,HBITMAP
但保存时遇到了问题。我会很感激一些帮助。
这是带有函数的标题:
这也是main.c:
我已经阅读了 StackOverflow 中有关此主题的所有问题,但没有一个为我澄清了这个问题。
c++ - 如何通过套接字发送 HBITMAP 然后返回到 HBITMAP?
所以我有一个工作 HBITMAP 可以使用SetClipboardData
. 我想要做的是将 HBITMAP 发送到另一个应用程序(不向磁盘写入任何内容),它将接收它并能够像原始应用程序一样将其设置到剪贴板。我知道您不能只发送句柄,所以我使用GetObject
并GetDIBits
发送了收集的数据。我查看了所有其他人关于通过网络发送 hbitmaps 的 stackoverflow 问题,但没有一个给出的答案对我有用。
更新:更新后代码仍然无法正常工作。
这是我的代码现在的样子:
客户:
服务器:
任何和所有的帮助表示赞赏!
winapi - 最新安全更新后无法打印图像
我的应用程序在最新的安全更新后无法打印。
所有 API 调用均未失败,但图像即使在 PDF 中也不会显示。文字和线条等形状打印效果很好。
该代码使用 IPicture 接口和 OleLoadPicture() 加载 JPG 图像。然后我使用它的 Render() 调用将其转换为 HBITMAP,最后在打印 HDC 时使用 StretchBlt()。
没有一个调用失败,所有返回值都被检查。直到今天和最新的 Windows 安全更新,一切都运行良好。当然,如果我在我的计算机上卸载 KB5000808 更新或在我的客户计算机上卸载 KB5000802,一切都会恢复正常,但这不是一个长期的解决方案。
有人今天有类似的问题吗?知道如何解决这个问题吗?还有其他打印图像的方法吗?
编辑:
即使我使用位图而不是 JPG 图像,也会出现同样的问题。所以JPG渲染没有问题。另一方面,JPG 和 BITMAP 都显示在屏幕上。只有打印不起作用。