草庐IT

windows - 来自 LoadImage() 的位图句柄上的 GetObject() 有时会返回不正确的位图大小

我们发现一个间歇性问题,即在WindowsXP下使用位图作为背景的所有者绘制的按钮无法正确显示位图。将显示包含多个按钮的窗口,这些按钮对用于按钮背景的位图图像使用相同的位图文件,并且大多数按钮将是正确的,但在某些情况下可能有一个或两个按钮显示位图背景减少到更小的尺寸。如果退出应用程序然后重新启动它,您可能会看到按钮上图标错误显示的相同行为,但它可能与以前的按钮相同,也可能不同。这种在按钮上错误显示图标的行为也不是经常出现。有时显示,有时不显示。因为一旦我们加载了按钮的图标,我们就保留它,一旦按钮显示不正确,它就会始终显示不正确。使用调试器,我们终于发现,当调用GetObject()函数

c# - 如何调整 PDF 文档的大小以适合位图

(我正在使用PDFSharp)我有一些位图,我为每个位图创建一个新的PDF页面。问题是我的pdf页面没有足够的高度来包含整个位图,所以我丢失了一部分位图。调整pdf页面大小以使整个位图适合该PDF页面的最佳方法是什么?publicstaticPdfDocumentGetPDF(Listpages,boolmakeFit=false){using(vardoc=newPdfDocument()){for(bytei=0;i我确实尝试在这个位置设置尺寸xgr.DrawImage(img,0,0);但这会使位图变大而不是PDF页面。我可能需要有人简单地指出将位图保存到PDF页面背后的概念,然

c++ - 来自程序子窗口的位图返回为黑色

现状:我有一个名为“NoxPlayer”的程序,它基本上是一个安卓模拟器。我还有一个c++程序,它定位了所说的NoxPlayer的窗口句柄,并制作了窗口当前状态的位图并将其保存到剪贴板。但是问题来了。程序在我看来是这样的:NoxPlayer这是它在剪贴板中保存的内容:Clipboard但这就是我想要的:Image我可以简单地剪切位图的顶部,但我想尝试做的是获取窗口的内部,如此处所示Image不切割位图。我首先尝试沿着窗口层次结构向下移动并获取子窗口的位图,但我得到的是黑色位图,如下所示:Blackwindow从MicrosoftSpy++看到的窗口层次结构:Hierarchy我用红色标

windows - 如何使用 GDI 即时创建带 alpha channel 的位图?

我正在使用分层窗口并在屏幕上绘制一个圆角矩形。但是,我想平滑锯齿状的边缘。我想为此我需要alpha混合。有什么方法可以用GDI做到这一点吗? 最佳答案 创建DIB部分。将BITMAPINFOHEADER填入32bpp。用预乘的alpha填充alphachannel,你就可以开始了。AlphaBlend是使用aplhachannel实际blit32bpp位图的API。 关于windows-如何使用GDI即时创建带alphachannel的位图?,我们在StackOverflow上找到一个类

c++ - 将屏幕截图位图转换为内存中的 jpeg

我想截取整个屏幕的屏幕截图,并想通过网络将其发送到服务器。(服务器将是保存它的那个)我目前正在使用此代码HBITMAPhBitmap=CreateCompatibleBitmap(hScreen,w,h);CImageimage;image.Attach(hBitmap);image.Save(L"screen.jpg");它确实保存了文件,但这不是我想要的。我也不确定如何获取字节,我在考虑GetBits()但文档说它是指向底层位图数据的指针。我想要得到的是我可以通过网络发送并使用服务器保存图像的JPG数据。那么,为什么我不直接使用位图并直接发送呢?因为它有点复杂而且代码很长,你必须得

c# - 如何获取已安装的位图编码器/解码器列表(WPF 世界)?

在WindowsForms世界中,您可以获得可用图像编码器/解码器的列表System.Drawing.ImageCodecInfo.GetImageDecoders()/GetImageEncoders()我的问题是,有没有一种方法可以为WPF世界做一些类似的事情,让我获得可用的列表System.Windows.Media.Imaging.BitmapDecoder/BitmapEncoder 最佳答案 您一定会喜欢.NET反射。我在WPF团队工作,想不出更好的方法。以下代码在我的机器上生成此列表:BitmapEncoders:Sy

c# - 将位图保存到 MemoryStream 时 GDI+ 中发生一般错误

我有一些代码可以在多台机器(开发、QA、UAT)上完美运行。不幸的是,在生产过程中,我在bmp.Save(ms,ImageFormat.Png);上收到“GDI+中发生一般错误”,因此,我假设您无法重现问题,但也许有人可以发现我的错误。一些注意事项,我已经搜索了很多常见的解决方案,请注意这是保存到MemoryStream因此大多数人建议的文件权限问题不适用,“bmp”也不适用打开时被锁定”解决方案,因为我又在其他地方写了。最后,这不是因为png需要可搜索的流,因为MemoryStream是可搜索的。请注意,如果我将其更改为ImageFormat.Jpeg,它就可以正常工作。我只有PNG

Roaring BitMap(高效压缩位图)

一、BitMap的数据稀疏问题BitMap的问题在于,不管业务中实际的元素基数有多少,它占用的内存空间都恒定不变。如果BitMap中的位的取值范围是1到100亿之间,那么BitMap就会开辟出100亿Bit的存储空间。但是如果实际上值只有100个的话,100亿Bit的存储空间只有100Bit为1,其余全部为0,数据存储空间浪费严重,数据越稀疏,空间浪费越严重。二、RoaringBitMap介绍为了解决位图稀疏存储浪费空间的问题,出现了很多稀疏位图的压缩算法,RoaringBitmap就是其中的优秀代表。RoaringBitmap是高效压缩位图,简称RBMRBM的历史并不长,它于2016年由S.

c# - 如何从 C# 中的图形对象获取位图/图像?

我想知道Graphics对象正在绘制一些东西的缓冲区的中间状态是什么。如何获取位图或它正在绘制的图像? 最佳答案 我不确定我是否理解您的要求,因为您的问题非常不清楚。如果您想知道如何将Graphics对象的内容保存到位图中,答案是没有直接的方法可以做到这一点。在Graphics对象上绘图是一种单向操作。更好的选择是创建一个新的Bitmap对象,为该位图获取一个Graphics对象,然后直接在其上绘制。以下代码是您如何执行此操作的示例://Createanewbitmapobjectusing(Bitmapbmp=newBitmap(

c# - 如何在 EmguCV 中将位图转换为 Mat 结构以及如何检测两个图像偏移

尊敬的论坛成员(member)您好!我正在从事一个项目,以检测安全摄像头的变化View。我的意思是,当有人试图移动相机(某种破坏……)时,我必须注意到这一点。我的想法是:每10秒从相机拍摄图像并比较这两张照片(旧照片和实际照片)。我需要控制近70个摄像头,所以我不能使用直播,因为它可能会占用我的互联网连接。我使用EmguCV库来完成这项任务,但在我的工作中遇到了一些问题。这是我准备的一段代码:publicclassEmguCV{staticpublicModelTest(stringBaseImagePath,stringActualImagePath){doublenoise=0;M