jjzjj

Graphics

全部标签

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

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

windows - 如何获得 GDI+ 路径的简单 "block"轮廓?

假设我有一个相对复杂的GDI+GraphicsPath,其中有“漏洞”。文本就是一个很好的例子,比如字母“O”。我想改造这条路径,以便我可以完全填满它,包括“洞”。我该怎么做? 最佳答案 科迪,我没有看到你已经接受了答案,所以我把这个C#函数放在这里让你看看它是否有帮助。已经过测试。与上面的版本略有不同:这个例程寻找边界面积最大的路径,所以它比上面的版本更慷慨一点,因为它不需要“主”路径通过2个测试来证明它值得保留。我把它变成了一个扩展方法,所以在.Net中你可以这样写:GraphicsPathsolid=LetterPath.To

windows - 如何使用 GDI 函数在 OpenGL 使用的 DC 上绘图?

如何使用GDI函数在OpenGL使用的设备上下文(DC)上绘制?这意味着如何将GDI函数和OpenGL一起使用。假设我有一个DC,这个DC已经用来初始化OpenGL了。 最佳答案 你最好不要这样做。从技术上讲,混合OpenGL和GDI仅适用于单个缓冲窗口。对于双缓冲窗口,GDI调用仅在缓冲区交换后才有意义。但到底为什么要混合使用OpenGL和GDI? 关于windows-如何使用GDI函数在OpenGL使用的DC上绘图?,我们在StackOverflow上找到一个类似的问题:

windows - Windows 上的屏幕尺寸(以英寸为单位)

我正在开发一款在iOS和台式机(Windows、Mac、Linux)上运行的多平台游戏。我希望游戏能够根据屏幕分辨率以英寸调整某些UI元素的大小。这个想法是,如果一个按钮在任何界面中应该有1/2英寸左右的宽度,它将自动缩放到该大小。现在,对于iOS设备,使用暴力破解技术可以很好地解决这个问题。您可以查找设备类型并使用硬编码表来确定每个设备的屏幕尺寸(以英寸为单位)。不是最优雅的解决方案,但足够了。台式机是棘手的。我希望和希望存在一种机制,(某些?)监视器可以通过该机制向操作系统报告它们以英寸为单位的实际屏幕尺寸。如果该机制存在并且我可以以某种方式访问​​它,我至少可以获得一些监视器的好

windows - 为什么在使用等光度分析时斑马条纹如此糟糕?

我想做的是在表面上应用等光度。请参见下图(由SolidWorks生成)。检查这个link获取更多信息。我使用OpenGL着色器技术来实现这种效果。但是我无法获得如上图所示的良好效果。这是我的方法。首先,我创建了一个由黑白strip组成的纹理。然后查看在我正在渲染的片段中采样的对象的法线,获取反射光线,并使用坐标从我最初创建的纹理中查找颜色信息。顶点着色器:#version150uniformmat4zwuProjModelViewMat;uniformmat4zwuModelViewMat;invec3zwaPosition;//positionofvertexinvec3zwaNor

.net - 为什么 Graphics::DrawImage 不能按预期拉伸(stretch)图像?

我正在制作anoverloadedTableLayoutPanelwhichdrawssomefancyborders,但出于某种原因,对Graphics::DrawImage的调用未按预期工作。当我拉伸(stretch)它时,它似乎淡出我的1x10像素源图像:这是进行渲染的函数:voidGTableLayoutPanel::RenderSides(Graphics^g,array^sideImages){if(sideImages){if(sideImages->LengthLength));}intborderSize=sideImages[0]->Height;g->DrawIm

c# - GDI+ 在基线上绘制不同大小的文本存在 off-by-1px 问题

我需要打印数字,通过增加字体大小和粗细来强调中间的一些数字。在下面的示例中,强调了456。使用的字体和两种大小是用户可配置的。当前代码使用对Graphics.DrawString(...)的三个调用来完成此操作。我遇到的问题是,对于大多数字体,我看到偏移1像素的问题(相对于灰线,456比其他数字高一个像素):我在帖子底部附上了一些针对各种字体的调试转储(BobPowell公式)。其他技术产生了类似的结果。为了在公共(public)基线上打印文本,需要计算特定字体的基线偏移量。我尝试使用三种技术:首先是MSDN的代码:http://msdn.microsoft.com/en-us/lib

c# - WPF - Graphics.CopyFromScreen 返回黑色图像

以下方法取自WinForms应用程序。它只是捕获屏幕,但我需要修改它才能在WPF应用程序中工作。当我使用它时,它返回一个黑色图像。尺寸正确。我没有任何打开的DirectX或视频,即使在我的桌面上也无法运行。publicstaticBitmapCaptureScreen(){//SetupabitmapofthecorrectsizeBitmapCapturedImage=newBitmap((int)SystemParameters.VirtualScreenWidth,(int)SystemParameters.VirtualScreenHeight,System.Drawing.I

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

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

c# - 如何在 .Net 中可视化复杂图形?

我需要可视化图表。我不知道如何命名它(顺便说一句,如果你知道-如果你告诉我,我将不胜感激)。理想的图形元素是可点击的(这样当用户点击一个block时,我可以处理具有指定元素id的事件)但即使没有任何交互我也可以生存。我可能希望能够专注于特定节点并布局所有其他节点以从其角度查看。是否有适合此任务的任何组件?如果不是,我应该寻找什么来帮助我开发一种算法来绘制这样一个具有视觉舒适布局的图形?此图的实际性质很常见:每个block代表从2个操作数得出的结果。橙色圆圈是对2个操作数的引用,绿色圆圈是消费者的连接点。区分操作数的位置(左或右)可能很重要,例如,如果推导表示差分或除法的数学运算(在这种