问题标签 [lockbits]

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 投票
1 回答
692 浏览

c# - 使用蒙版图像删除图像覆盖

我正在编写一个程序,该程序使用掩码(覆盖图像)从 png 图像中删除覆盖

拥有图像 1 和 2 我想获得图像 3。

我尝试过使用 lockbits 并尝试了很多事情,但我认为我无法正确计算

rgbValues 是覆盖的字节数组,rgbValues2 是给定图像的字节数组。

在此处输入图像描述

0 投票
1 回答
172 浏览

c++ - Qt 中的 LockBits。如何实施?

请告诉我这个 Qt 中的类似物。如何在 Qt 中实现这一点?谢谢!

0 投票
1 回答
1062 浏览

c# - 为什么 Bitmap.LockBits 在 VM 上失败

在部署应用程序之前,我使用 XP VM 和 Vista VM 对我的应用程序进行冒烟测试。这两个 VM 都使用 32 位颜色。不确定它是否有任何区别,但我正在使用 VirtualBox。每台机器还分配了 2GB 的内存,2 个处理器。XP 有 128MB 的视频内存,Vista 256(在每种情况下我都可以设置它们的最大值)。运行这些机器的桌面有 6 核和 16GB 内存。同样,不确定此信息是否相关,但谁知道。

以下是我用来将 aBitmap转换为可以直接使用的一堆像素的扩展方法。因为,毕竟我们需要速度。我们需要的是速度。油腻,速度快!而 Bitmap.GetPixel 则与之相反。

这段代码在我的 Windows 8.1“真实”机器上完美运行,就像我之前使用 Windows 8 和 Windows 7 时一样。

但在虚拟机上,它失败并显示“参数无效”。ArgumentException

根据文档,这是因为PixelFormat 值不是特定的每像素位数值,或者为 bitmap 传入了不正确的 PixelFormat

我没有在这些 VM 上安装 VS,但我确实在打开图像并打印了它的格式上放置了一个测试程序......这是预期的PixelFormat.Format32bppArgb。我在所有 3 个系统上使用同一组测试图像。

我的下一个假设是虚拟机视频硬件的限制,但归根结底,它是位图而不是 3D 场景……我很确定我应该能够使用它。

任何人都可以对这个问题有所了解吗?我真的很希望能够正确测试其中的一些代码,而不是仅仅依靠“它可以在我的机器上运行”,而且我宁愿不必在 VM 上安装 VS(我什至不确定它'将安装在 XP 上(我更喜欢 Vista 上的那个,因为它使用起来明显更快))。

希望其他人遇到过这个问题并有解决方案 - 谷歌搜索让我失望了。

0 投票
1 回答
58 浏览

c# - 为什么我的图像被认为是开放的?

这是我的按钮,它将移动与第一个索引进行比较的所有视觉上重复的图像(将嵌套一个以转到下一个图像,以此类推)。我创建了 2 个路径文件字符串。然后我使用一个while循环来检查我的计数是否达到了目录中的文件数量。之后它将结束循环。

此方法直观地检查图像是否重复。true如果是则返回。

我得到了这个例外:

它发生在这一行:

0 投票
1 回答
739 浏览

c# - 遍历每个像素以获得 1bpp 像素格式

我有一个关于在 C# 中使用 Lockbits 方法的问题。我有一个 1bpp 图像,我正在尝试访问图像的所有像素,但有些像素仍然被遗漏。

此代码应将所有像素变为白色

0 投票
1 回答
623 浏览

c# - 通过在具有不同尺寸的新图像上取一个像素并将其变成四个像素来放大图像而不模糊

我之前写过一个图像放大算法,它通过将图像大小加倍并将单个像素变成新图像上的四个像素来放大图像而不会模糊。这最初是为 500x500 像素的图像构建的,它工作得非常好,但现在我需要将它用于具有不同宽度和高度的图像。

我尝试过更改值,但无法使其正常工作,并且可能缺少某些内容,但我不知道。有人可以帮助解决这个问题,以便它适用于不同的尺寸吗?它是为放大 500x500 像素的图像而构建的,但我需要放大的图像是 634x490 像素。

下面是适用于 500x500 的原始代码,如果您将其粘贴到项目中并运行它,这将起作用,但您必须为其提供 500x500 像素的图像:

我还使用了一些帮助来使上面的代码正常工作,因此我可能在此处进行了更多解释:从一张图像中获取像素并在新图像上将它们放大以创建更大版本的原始图像

0 投票
2 回答
1865 浏览

c# - 设置黑白像素取决于亮度

我试图从这些或类似的图片中找到针:

我的解决方案是取图片的平均亮度并根据它设置黑白像素。结果是这样的:

我不需要在那里看到数字和工作人员......只有针但它在那里时问题不大。但是我使用 set,get pixel 函数,它真的很慢,我对 LockBits 方法有一些了解,我用它来获取亮度,但我不知道如何正确使用它来获取 setpixel。谁能帮助我的代码?..thnx

Edit2:这是我的整个代码..

我得到这个带有彩色像素的位图,你能告诉我为什么吗?

当我使用红色时......不是黑色......(pixelUtil.SetPixel(x,y,Color.Red);)我得到了这张有趣的照片。(不同的尺寸是可以的..)

0 投票
1 回答
146 浏览

c# - Lockbits 和 GetPixels 的问题

我正在尝试使用 Bitmap 和 GetPixels 获取图像中的所有像素。现在我知道它的效率非常低,所以我一直在研究 LockBits。我已经成功地制作了我认为锁定位的东西,但我无法获得每一个像素。到目前为止,我的代码是...

我想使用 Lockbits,因为它是获取像素的最佳方式。有什么帮助吗?

谢谢你。

0 投票
1 回答
451 浏览

c# - BitLock-GetPixels。时间和像素格式

好的,我已经创建了两个程序。一个使用GetPixels,另一个使用LockBits。我的 GetPixels 程序如下...

所指的条纹图片为 200x200 jpg简称stripe.jpg

现在这个读取大约 20 秒来处理这个图像并输出所有像素。太好了,但是理论上我的 LockBits 应该更快。我的 LockBits 代码是...

时间是37秒。现在我不明白为什么我的 Lockbits 时间比 GetPixels 长。

此外,我的输出文件的列出位置也不匹配。就好像它们出了问题一样。

这是一个需要解决的大问题,所以提前感谢大家阅读并尝试解决我的问题。

0 投票
0 回答
644 浏览

c# - 从我的 LockBits 中获取每种颜色的像素

我有一个程序可以获取图像中的每个像素并将它们输出到文本文档中。问题是它只是将它们作为数字扔在那里,而且看起来相当难看。ei " 37 37 37 36" 我希望像 GetPixel 函数一样显示它们。ei [A=255, R=4, G=255, B=131]。我目前的代码是...