gdi+相关内容
我正在尝试将以下 GDI+ 定义包含在我在 Visual Studio 2017 下编译的 Win32 C++ 项目中: #include #include #pragma 注释 (lib,"Gdiplus.lib") 我需要编译这个项目以支持 Windows XP.所以在我选择的项目属性中:Platform Toolset as Visual Stu
..
从这个线程继续: 车牌检测有哪些好的算法? 我开发了我的图像处理技术来尽可能地强调车牌,总的来说我很满意,这里有两个示例. 现在是最困难的部分,实际检测车牌.我知道有一些边缘检测方法,但我的数学很差,所以我无法将一些复杂的公式翻译成代码. 到目前为止,我的想法是遍历图像中的每个像素(基于 img 宽度和高度的 for 循环)由此将每个像素与颜色列表进行比较,由此检查算法以查
..
我有一个函数,它首先从磁盘读取图像,调整其大小,然后保存到另一个目录. 当我使用 Bitmap.Save(directory + theimagename) 时,它会返回我在问题标题中所述的错误. 我检查了目录是否正确,该目录中不存在给定的图像名称. 奇怪的是,相同的代码在本地机器上运行良好.但是当我将它上传到我的共享托管空间时,它就不起作用了. 代码如下. bmpOut
..
我一直在寻找一种优化(即快速)算法,使用抖动将 24 位 RGB 位图转换为 16 位 (RGB565) 位图.我正在寻找 C/C++ 中的一些东西,我可以在其中实际控制如何应用抖动.GDI+ 似乎提供了一些方法,但我不知道它们是否会抖动.而且,如果他们确实抖动,他们使用的是什么机制(Floyd-Steinberg?) 有没有人有使用抖动进行位图颜色深度转换的好例子? 解决方案 正如
..
假设我有一个 32bpp ARGB 模式的 System.Drawing.Bitmap.这是一个大的位图,但它主要是完全透明的像素,中间有一个相对较小的图像. 检测“真实"图像边界的快速算法是什么,这样我就可以剪掉它周围的所有透明像素? 或者,.Net 中是否已经有一个函数可以用于此目的? 解决方案 基本思想是检查图像的每个像素点,找到图像的上、左、右、下边界.要有效地执行此操
..
大家好.在厌倦了 Get/Set Pixel 和 RotateTransfom 的缓慢性能和古怪行为之后,我求助于使用 LockBits 进行 2d 位图图像旋转.所以这是我想出的代码,据我估计,它应该可以完美运行.没有. private static void InternalRotateImage(Bitmap originalBitmap, BitmaprotatedBitmap, Poi
..
我正在尝试通过 tcp 将窗口的屏幕截图发送到服务器.获取屏幕截图没有问题(使用 GDIplus).网络对我来说也很容易.问题是试图将 gdi+ 位图转换为 png(在内存中)以从中获取数据并将其发送到服务器.有人可以帮我吗? 解决方案 Gdiplus 可以保存到文件,或者使用 IStream 保存到内存.请参阅 Gdiplus::Image::Save 方法 //获取gdi+位图Gdi
..
我目前正在动态创建位图并使用位图中的图形对象在其上绘制一个字符串,如下所示: System.Drawing.Graphics 图 = System.Drawing.Graphics.FromImage(bmp);graph.DrawString(text, font, Brush, new System.Drawing.Point(0, 0)); 这将返回一个矩形位图,其中的字符串从左到右直接
..
我需要绘制一个正方形图像,映射或转换为编译时未知的四边多边形.我该怎么做? 详细解释 具体问题是使用非矩形地图投影渲染地图图块.假设我有以下磁贴: 而且我知道四个角点必须在这里: 鉴于此,我想得到以下输出: 方形图块可能是: 旋转;和/或 一端比另一端窄. 我认为第二项意味着这需要一个非仿射变换. 随机附加注释 四边形? 完全正确的说法是,瓷
..
在 GDI 中为图像添加阴影的有效方法是什么? 现在我从我的形象开始: 我使用 ImageAttributes 和 ColorMatrix 将图像的 alpha 蒙版绘制到新图像上: colorMatrix = (( 0, 0, 0, 0, 0),( 0, 0, 0, 0, 0),( 0, 0, 0, 0, 0),(-1, -1, -1, 1, 0),( 1, 1, 1, 0, 1)
..
我有一个 winforms 应用程序 这是我的代码 使用系统;使用 System.Collections.Generic;使用 System.ComponentModel;使用 System.Data;使用 System.Drawing;使用 System.Linq;使用 System.Text;使用 System.Threading.Tasks;使用 System.Windows.For
..
.NET 库中是否有任何类、方法或任何算法来执行非仿射变换?(即不仅涉及旋转、缩放、平移和剪切的变换) 例如: (来源:last100.com) 非仿射变换还有其他术语吗? 解决方案 您发布的所有示例图像都可以使用 Quadrilateral Distortion 来完成.虽然我不能肯定地说四边形扭曲将涵盖所有非仿射变换. 这里有一个在 C# 中不太好的实现的链接.
..
这个问题与: 如何确定GDI+中两条线的交点?(代数很好的解释,但没有代码) 如何检测两条线的位置段相交?(接受的答案实际上不起作用) 但请注意,一个有趣的子问题在大多数解决方案中都被完全掩盖了,即使存在三个子情况,这些解决方案也会为巧合情况返回 null: 重合但不重叠 接触点和重合 重叠/重合线子段 例如,我们可以这样设计一个 C# 函数: public sta
..
我正在尝试在两个 PictureBox 控件之间进行淡入淡出过渡. 每次时间过去时,我都使用 Timer 使用 GetPixel 和 SetPixel 更改两个图片框的不透明度. 现阶段问题是这段代码导致了异常: System.InvalidOperationException:对象当前正在其他地方使用 我尝试修改克隆的Bitmaps,而不是直接操作设置为控件Image属性的B
..
我正在将图像渲染到 System.Drawing.Bitmap 中,然后将其绘制到窗口中,但是我可以看到边缘正在消除锯齿.如何防止这种情况? 一些更详细的信息.位图是这样创建的: new Bitmap (this.Width, this.Height, Imaging.PixelFormat.Format32bppArgb) 然后我将像素设置为 Color.Black 或 Color.W
..
我有一个自定义控件,将来可能会有用户自定义的字体(缩放已经实现).我必须在两个数字下填充一个矩形,形成一个以 10 为基数的数字.我对零、一个或两个数字有不同的颜色. 使用字体 {Name = Microsoft Sans Serif Size=16} 和以下 Graphics.MeasureString 方法调用: g.MeasureString("00", Font);g.Measur
..
我正在尝试创建一个具有撤消和重做功能的简单绘图应用程序.我假设您可以将您正在绘制的内容添加到列表中并调用列表来绘制所有内容.然后撤消应该只是删除最后添加的项目并重新绘制所有内容.问题是,如何将我绘制的内容添加到列表中并使用该列表撤消? 我正在使用位图重绘方法.我是这样画的: 点开始,结束;布尔绘画;私人列表myPoints = new List();私有无效 pnlMai
..
我有一个 WinForm 应用程序.我正在使用嵌入资源中的自定义字体. 它起初工作,但随后导致程序在一段时间后崩溃. 以下面的代码为例,如果我不断调整表单的大小,强迫它不断地重绘自己,它会在几秒钟内崩溃.我得到的消息是“Error in 'Form1_Paint()'".对象当前正在别处使用.'. 我究竟做错了什么?我怎样才能避免这种情况? 我从这里获得了字体. 谢谢. 导入 Syst
..
为什么要找出这个神奇的矩形这么难? 在 OnPrintPage 事件中,我有 PrintPageEventArgs,我试图在最大可打印区域的范围内使用图形进行绘制. 我尝试过使用 PageBounds、PrintableArea、Graphics.VisibleClipBounds 等.都无法始终如一地获得绘图区域,尤其是从横向布局切换到纵向布局时.当您从横向切换到纵向时,Printa
..
我使用像素作为字体单位.在一个地方,我正在执行命中测试以检查用户是否在屏幕上某些文本的边界矩形内进行了单击.我需要为此使用 MeasureString 之类的东西.不幸的是,执行命中测试的代码位于库的深处,该库无法访问 Graphics 对象,甚至无法访问 Control. 如何在不使用 Graphics 类的情况下获取给定字体的字符串的边界框?当我的字体以像素为单位时,为什么我什至需要一个
..