gdi+专题提供gdi+的最新资讯内容,帮你更好的了解gdi+。
如何使用GDI将鼠标坐标转换为世界坐标? 或者使用GDI绘制SVG形状的边框(甚至更好)旧的Skool区域? 无论如何。我一直在寻找SVG代码,发现: http://development.mwcs.de/svgimage.html 这是第一个实际上适用于SVG的Delphi组件,但我离题。 该组件使用GDI显示圆,曲线等 GDI使用矩阵将世界坐标,旋转和失真转换为屏幕坐标。 这部分我明白了您使用
我需要绘制一个方形图像,映射或转换为编译时的未知四边形多边形.我该怎么做? 更长的解释 具体的问题是渲染具有非矩形地图投影的地图图块.假设我有以下图块: 我知道四点必须在这里: 鉴于此,我想得到以下输出: 方形瓦可以是: 旋转;和/或 >一端比另一端更窄. 我认为第二个项目意味着这需要非仿射变换. Random extra notes Four-sided? It is plausible tha
在我的应用程序中,我需要在TCanvas上绘制一个“标记”,如谷歌地图标记(见图). 我想用作半径,高度和原点的参数: 我不知道要使用的算法.我可以使用弧线绘制顶部,但我如何绘制底部? 注意:我需要用GDI和GDI绘制它,所以欢迎任何解决方案. 这是一个使用200×200 PaintBox的快速示例 – 它至少应该为您提供算法的想法.我相信你可以在中间画出黑点.阅读 Bezier Curves;
在 Windows窗体中使用GDI,我希望能够使用笔绘制并根据目标像素颜色混合颜色. 例如,如果我画一条线并且它经过黑色像素,我希望它是一个较浅的颜色(例如白色),以便它可见.当同一条线经过白色像素时,它应该是较暗的颜色(例如黑色),以便它仍然清晰可见. 有没有办法用GDI做到这一点? 正如Hans Passant所提出的那样,您可以使用画布中当前的内容作为纹理画笔的图像进行绘制(您可能需要双缓冲
我正在开发一个C#游戏(2.0或3.5还没有决定).游戏将在具有六边形网格的地图上播放.我很欣赏这张地图的UI应该使用双缓冲(很多层,所以慢绘).我知道我可以通过样式启用双缓冲,或者创建我自己的缓冲区并自己处理它.我在网上找到的大多数建议都是自己处理.我想知道为什么?显然,这允许我避免控制双缓冲中固有的假设,但我不知道这些假设是什么. 同样,我不是在寻找代码来解释如何对我的控件进行双缓冲,而是为什
我正在做一些关于图像处理应用程序的工作(为了好玩),我正在努力完全理解ColorMatrix转换的工作原理.我得到线性/仿射变换的基础知识,并且可以通过在线复制示例得到很好的结果,但我想完全理解为什么有些东西可以工作而不仅仅是满足它的工作原理. 例如,对图像进行简单转换以产生其负值(每种颜色转换为其各自的互补)使用以下矩阵: [-1, 0, 0, 0, 0] [0, -1, 0, 0, 0] [0
我正在尝试使用Visual Studio 2012创建一个 Windows窗体应用程序,可以将插入符号放在所有者绘制的字符串中的当前位置.但是,我一直无法找到准确计算该位置的方法. I’ve done this successfully before in C++.我在C#中尝试了很多方法,但还没有准确定位插入符号.最初,我尝试使用.NET类来确定正确的位置,但后来我尝试直接访问Windows A
在Photoshop中,您可以选择“颜色”(从底部开始的第二个)将混合模式设置为下一个较低层: 如果图像顶部只有一个渐变,结果可能如下所示: 我在某处找到的颜色混合模式的描述是: 颜色将下层的色调和饱和度改变为上层的色调和饱和度,但仅留下亮度. 到目前为止我的代码是: using(var g = Graphics.FromImage(canvas)) { // draw the lower
请考虑标准System. Windows.Forms.Form中的以下代码 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle test = new Rectangle(50, 50, 100, 100); using (LinearGradientBrush brus
我有一个函数,它首先从磁盘读取图像,调整大小,然后保存到另一个目录. 当我使用Bitmap.Save(目录theimagename)时,它返回错误,如我在问题标题中所述. 我检查了目录是否正确,并且该目录中不存在给定的图像名称. 奇怪的是,相同的代码在本地机器上运行良好.但是当我将它上传到我的共享主机空间时,它只是不起作用. 代码如下. bmpOut = new Bitmap(Size, Size
我试图在Visual Studio 2015中创建一个小的绘图应用程序.我的项目属于 Windows窗体应用程序的类别.我有以下问题: private void Form1_MouseMove(object sender, MouseEventArgs e) { if (a == 1) { if (r == 1 || el == 1)
那里! 我遗漏了使用等…只是简单的代码: var image = Image.FromFile(/* my magic source */); var bitmap = new Bitmap(image.Width, image.Height); var canvas = Graphics.FromImage(bitmap); var brush = new SolidBrush(/* my ma
好吧,我有一个以8位索引格式从外部应用程序传来的图像.我需要将此图像转换为完全相同大小的24位格式. 我已经尝试创建一个相同大小和类型为Format24bppRgb的新Bitmap,然后使用Graphics对象在它上面绘制8位图像,然后将其保存为Bmp.这种方法不会出错,但是当我打开生成的图像时,BMP标题具有各种时髦的值.高度和宽度都是巨大的,此外,还有压缩标志和其他一些有趣(和大)的值.不幸的
我试图找出gdi图形容器如何与不同的图形单元一起工作.看下面的代码.它编译,您可以将其粘贴到新的新形式. void Form2_Paint(object sender, PaintEventArgs e) { var gfx = e.Graphics; System.Diagnostics.Debug.WriteLine("DpiX={0}, DpiY={1}", gfx.Dpi
我有一个从Panel创建的全局Graphics对象.定期从磁盘拾取图像并使用Graphics.Draw Image()绘制到面板中.它工作正常的几次迭代,然后我得到以下有用的例外: System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+. at System.Drawing.Graphic
.net中的LinearGradientBrush(或甚至在整个GDI中)似乎有一个严重的错误:有时,它会引入工件. (参见 here或 here – 基本上,线性渐变的第一行绘制在endcolor中,即从白色到黑色的渐变将以黑色线开始,然后以适当的白色至黑色梯度开始) 我想知道有没有人找到一个工作的解决方法?这是一个非常烦人的bug
我的服务器上的ASP.NET应用程序运行几天后会开始抛出GDI异常.重新启动服务器后,所有工作都可以正常工作几天,然后突然出现此异常.第一次发生之后,每次尝试保存PNG图像时,都会发生,直到重新启动. 当我尝试用JPEG保存图像时,它工作正常. 当我从我的项目运行这个代码,它失败: var path = @"C:\Project\images\logo.png"; var image = Imag
有时候,微软的例外消息是非常无益的.我创建了一个不错的MVC方法来渲染文本.方法体在下面.当它达到“DrawString”方法时,我收到一个异常,指出“参数无效”. 注意,最好我可以指出的字体是正确构造的(我只是使用10pt的Arial),rect的大小是正的和有效的,画笔是一个白色的SolidBrush,格式标志不影响输出; ie如果我从调用中排除格式标志,我仍然收到错误. DrawString
我正在使用GDI,我创建了一个新的位图,如下所示: var bmp = new Bitmap(width, height); 现在当我观察它的RawFormat.Guid我看到它是不同于所有预定义的ImageFormats(而我期望它是JPEG). ImageFormat.Jpeg.Guid {b96b3cae-0728-11d3-9d7b-0000f81ef32e} format.Gui
我正在渲染一个插值曲线: e.Graphics.DrawLines(new Pen(Color.Red), _interpolationPoints.ToArray()); 有时会抛出一个OverflowException. _interpolationPoints数组的检查显示科学记数法中的一些非常大的值. {X = 0.0 Y = -1.985174E 10} 我怀疑Y = -1.985174