15得票3回答
如何使用GDI将正方形位图渲染成任意四边形?

我需要绘制一个正方形的图像,映射或变换成一个在编译时不知道的四边形。如何做到这一点? 更长的解释 具体问题是使用非矩形地图投影渲染地图瓦片。假设我有以下瓦片: 我知道这四个角点需要在这里: 鉴于此,我希望获得以下输出: 方形瓷砖可能会: 旋转; 和/或者 一端比另一端...

15得票2回答
GDI+中随机发生的AccessViolationException问题

我们面临的问题是,有时会发生“AccessViolationException”异常,导致一个简单的组合框绘制了白色背景和一个红色交叉图案覆盖在其上面。我们无法可靠地重现这个错误,它只是偶尔发生。 我们没有做任何特殊的事情,只是显示一个带有菜单、工具栏、主面板上的组合框和一些超链接控件的主窗...

15得票3回答
FillRectangle和DrawRectangle的像素行为

每次我使用Graphics.DrawRectangle或Graphics.FillRectangle(int版本)时,似乎都会错过我想要绘制的矩形右侧和底部边框上的像素。 哪些像素将被填充的确切定义是什么?Graphics.FillRectangle(brush,x,y,width,heig...

15得票5回答
GDI+中快速生成投影的算法

在GDI中,如何高效地为图像添加阴影?我现在从我的图像开始:我使用ImageAttributes和ColorMatrix将图像的Alpha蒙版绘制到新图像中:colorMatrix = ( ( 0, 0, 0, 0, 0), ( 0, 0, 0, 0, 0), ...

15得票2回答
为什么Color.FromArgb(255, 255, 255, 255)不等于Color.White?

为什么 Color.FromArgb(255, 255, 255, 255) 不等于 Color.White?是否有内置的方法可以仅比较 A、R、G、B 值而不是颜色名称? 谢谢。

15得票1回答
为什么System.Drawing.Color.Green是(0, 128,0)?

我认为应该是(0, 255, 0)。有人知道为什么吗?

15得票3回答
GDI+有标准的图像编码器CLSIDs吗?

GDI+的Image::Save方法需要一个CLSID参数来指定要使用的编码器。文档指向一些示例代码,用于获取与特定MIME类型(例如image/jpeg或image/png)相关联的编码器。然而,我不愿意复制半页函数来支持仅仅是将中间结果保存到磁盘的1行调试辅助功能。 难道标准编码器没有标...

15得票7回答
确定图像中是否使用了Alpha通道

当我将图片导入我的程序时,我想确定以下几点: 它们是否有alpha通道 如果使用了该alpha通道 #1 使用Image.IsAlphaPixelFormat就足够简单了。 对于#2,除了循环遍历每个像素之外,是否有一种简单的方法可以确定至少有一个像素使用了alpha通道(即设置为与2...

14得票2回答
在WinForms应用程序中缓存GDI+对象:是否值得以及如何正确实现?

对于我的一些WinForms应用程序,我需要创建大量的GDI+对象(画笔、笔刷、字体等),并且需要反复使用它们。我创建了一个简陋的缓存单例来实现我所需的功能,但是代码味道非常浓烈...public sealed class GraphicsPalette { public static...

14得票5回答
快速多窗口渲染

我已经搜索并测试了许多周的C#渲染库,到目前为止,我还没有找到一个在多窗口渲染设置下表现良好的库。要求是能够在12个或更多显示器设置(金融图表)上运行程序,且在快速电脑上没有延迟。每个窗口需要每秒更新多次。在执行此操作时,CPU 需要执行大量的密集和时间关键任务,因此必须将一些负担转移至 GP...