gdi+相关内容
我使用以下代码在单个监视器上绘制: Point cursorLocation; NativeMethods.GetCursorPos(out cursorLocation); Screen screen = Screen.FromPoint(cursorLocation); Point h1 = new Point(screen.Bounds.Left, cursorLocation.Y)
..
所以我想做一个便宜的Gyazo(截图工具) 问题是光标坐标闪烁,我如何防止这种情况?我已经尝试过WM_ERASEBKGND,但没有任何帮助。 我的代码还有没有其他错误?有什么不好的做法/技巧吗? #include #include #include #pragma comment (lib, "Gdiplus.li
..
免责声明:我只是从C开始,所以我很可能遗漏了一些明显的东西,或者没有正确地思考!:) 我将如何在纯C中使用GDI+? 据我所知,GDI+包装了为C++制作的对象,但在它下面是一个平面API,可以通过gdiplusflat.h访问,这是一个C友好的头文件。 我的问题是,当我#包含它时,我得到以下错误: C:Program Files (x86)Microsoft SDKsWindo
..
我有一个具有定制256色调色板的8bpp索引位图,调色板中的特定颜色(Color.Pink和Color.Green)表示透明度。 我可以在位图上使用MakeTransparent(color)方法(每种颜色两次),但它会将其转换为32bpp。因此,我改用: using var imageAttr = new ImageAttributes(); imageAttr.SetColorKey(
..
我正在尝试使用Delphi 6将阿拉伯文旋转文本绘制到颜料盒。尝试了不同的工具,如Gr32和现在的GDIPLUS。 GDIPLUS样本工作正常,我可以绘制&Hello";: graphics := TGPGraphics.Create(PaintBox.Canvas.Handle); fontFamily:= TGPFontFamily.Create('Times Ne
..
考虑以下代码: Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint Dim g As Graphics = e.Graphics g.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAliasGri
..
我正在将文本绘制到屏幕外的位图。遗憾的是,文本没有正确左对齐(见下图)。文本应该触及左边距(蓝色线条),但偏离了几个像素。距离随文字大小增加。 如何摆脱此距离? 我使用的是.NET框架4.6.1。但这似乎更像是一个我不理解的一般性GDI+问题。 用于生成示例的代码: using System.Drawing; using System.Drawing.Imaging; n
..
我似乎拿到了一张“不清楚我在问什么”的选票。我想自定义绘制一个组合框样式的控件。弹出打开部分需要在控件本身的边界之外绘制。我不能使用组合框-想象一下类似于Word功能区中的图库控件。 我想了两种方法: 将弹出的打开面板向上传递到要呈现的窗体。 使用无边框、无框架窗体或NativeWindow。 后者还允许下拉菜单脱离窗口的边界,这可能有用,但不是绝对必要的。 有没有其他方
..
我有一个位图对象(或任何其他图像),我正在这个位图上画一些线来创建一个多边形。 绘制后,我需要克隆/复制/剪切选定区域(基于线条)。 我无法使用bitmap.Clone方法,因为它仅适用于矩形。 我需要基于Point[]或GraphicsPath的某种克隆实现... 请帮助新入门的GDI/Graphics...:) 更新 我尝试这样做: Graphics g =
..
我有一个用于MMO的网状系统,它使用A*来查找路径。偶尔它会失败,因为我有放置不当的节点。为了解决这个问题,我制作了一个网格可视化工具。它工作得很好-我可以看到一些节点放置得不好。但我看不到哪些节点。 以下是显示节点的代码: foreach (var node in FormMap.Nodes) { var x1 = (node.Point.X * s
..
如果向定义了两端位置的Graphicspath添加了一条线,是否可以读取这对点? Point[] myArray = { new Point(30,30), new Point(60,60), }; GraphicsPath myPath2 = new GraphicsPath(); myPath2.A
..
我需要手动插补一条基本曲线/样条线--这是由System.Drawing的DrawCurve方法创建的曲线类型。我已经找到了DeCastelJau算法的一个很好的C示例,可以用Bezier来实现这一点。遗憾的是,我找到的这类曲线的所有例子都是纯粹的数学符号,对我来说可能是楔形的。 谁能给我举一个插补(所有的点都相交)这种曲线的例子,用编程语言演示,这就是我所知道的阅读方法? 编辑:
..
这就是我使用GDI+绘制矩形的方式。 Graphics g(hdc); SolidBrush blueColor((Color(255, 74, 134, 232))); g.FillRectangle(&blueColor, x, y, width, height); DeleteObject(&blueColor); 现在我想添加一些bord
..
我正在开发一个基本的绘图应用程序.我希望用户能够保存图像的内容. 我认为我应该使用 System.Drawing.Drawing2D.GraphicsState img = drawRegion.CreateGraphics().Save(); 但这并不能帮助我保存到文件. 解决方案 您可以尝试使用这种方法保存图像 SaveFileDialog 对话框=new SaveFile
..
我有一些使用 GDI+ 在屏幕上绘制的自定义(winforms)组件. 为了防止重绘时闪烁,我决定启用双缓冲,所以我在构造函数中添加了一行: public ColourWheel(){初始化组件();this.DoubleBuffered = true;} 在这个组件(ColourWheel)上效果很好.当我将同一行添加到其他两个(结构相似)组件中的任何一个的构造函数中时,我得到了一些奇
..
我有一个应用程序,目前是用 C# 编写的,它可以采用 Base64 编码的字符串并将其转换为图像(在本例中为 TIFF 图像),反之亦然.在 C# 中,这实际上非常简单. private byte[] ImageToByteArray(Image img){内存流毫秒 = 新的内存流();img.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff)
..
当你有这样的代码时: 位图 bmp = 新位图 (100, 100);图形 g = Graphics.FromImage ( bmp );Pen p = new Pen (Color.FromArgb (128, Color.Blue), 1);Brush b = new SolidBrush (Color.FromArgb (128, Color.Blue));g.FillEllipse (
..
这个问题与: 如何确定GDI+中两条线的交点?(很好的代数解释,但没有代码) 如何检测两条线的位置段相交?(接受的答案实际上不起作用) 但请注意,一个有趣的子问题在大多数解决方案中都被完全掩盖了,即使存在三个子案例,它们也只为重合案例返回 null: 重合但不重叠 触摸点和重合 重叠/重合线子段 例如,我们可以设计一个这样的 C# 函数: public static
..
我问“怎么能我告诉一个点是否属于某条线?"之前我找到了合适的答案,非常感谢. 现在,我想知道如何判断某个点是否接近我的线. 解决方案 你需要计算到直线的直角距离.然后你必须定义什么是“接近"并测试它是否在那个距离内. 你想要的等式是:
..
基本上,我想测量 TextBox 中的文本大小,我发现 TextRenderer 给了我正确的值,而 Graphics 给了我错误的值.这样看来,TextBox 应该使用 GDI 来绘制文本,对吧? 但是,无论我在哪里阅读,我都看到它应该使用 GDI+.例如: 这里 http://microsoft.public.dotnet.framework.windowsforms.contro
..