jjzjj

Graphics

全部标签

c# - Graphics.MeasureString() 以点或像素返回大小?

我使用Graphics.MeasureString来计算文本的大小。EG:10像素=7.5点。我的问题:大小是根据Graphics.MeasureString点值还是像素值计算出来的? 最佳答案 来自MSDNpage:ThismethodreturnsaSizeFstructurethatrepresentsthesize,intheunitsspecifiedbythePageUnitproperty,ofthestringspecifiedbythetextparameterasdrawnwiththefontparameter

windows - GDI GradientFill 不适用于屏幕外位图

我正在尝试使用GDIGradientFill函数在离屏位图上绘制,然后通过BitBlt将其绘制到屏幕上。但我总是得到一个黑色位图...如果我直接对屏幕使用GradientFill,它就可以工作。下面是一个示例应用程序,可以了解我的意思。#pragmacomment(lib,"msimg32.lib")#includeconstCHARc_szWndClass[]="GradientTestWnd";constCHARc_szWndTitle[]="GradientTest";constintc_nWndWidth=1024;constintc_nWndHeight=768;intWIN

c# - DPI 和 PPI | DPI 或 PPI

DPI和PPI有什么区别吗?是这样吗:点=像素?最后,C#.net中的DpiX和DpiY是什么?我们如何改变它们? 最佳答案 新闻部代表每英寸点数,在打印时使用。它也被严重滥用于屏幕分辨率。彩色墨水打印机不会混合颜色,而是每种颜色都有自己的“插槽”。当打印机说12000dpi时,对于基于5色的打印机,它实际上是12000/5“像素”。尽管如此,DPI只有在打印结果的上下文中才会变得有趣。Photoshop使用图像的DPI信息来告诉您图像的打印尺寸。许多人将DPI误解为图片图像质量或像素密度的度量。例如,如果您在Photoshop中更

windows - 在配备 GeForce 960M 的笔记本电脑上初始化 D3D12 调试接口(interface)失败

当我尝试使用标志DXGI_CREATE_FACTORY_DEBUG调用D3D12GetDebugInterface或CreateDXGIFactory2时,调用在我的笔记本电脑上失败,但在我的台式机上却没有。其他调用在笔记本电脑上运行良好,我可以渲染东西——我只是无法初始化调试层。桌面有一个老式的GeForce650Ti,笔记本电脑是戴尔XPS15笔记本电脑(最新一代),它有一个GeForceGTX960M。两者都有最新的驱动程序(361.43)。有什么想法可能会出错吗?我在NVIDIA上发布了devtalkforum首先,但交叉发布到stackoverflow,因为NVIDIA官方论

windows - 使用自定义笔样式在 win32/GDI 中绘制线条?

我需要使用win32/GDI(native,而非.NET)进行绘图,但我遇到了以下问题:我需要绘制“样式化”的线条。例如,在附图中,标记为“A”的线就我的应用程序数据而言是一条直线,只需要以额外的锯齿形作为样式绘制即可。当然,这很容易以编程方式完成,但是当线可以是任意角度(“B”)甚至是贝塞尔曲线(“C”)时,它会变得更加复杂。现在,我可以通过编程方式完成这一切,煞费苦心地做数学运算,在每条线的可能性周围画一个锯齿形,但这会花费很多时间,更重要的是,很容易出错。是否可以只给windows/GDI一个“样式”来应用到线条上,也许是一个像标记为“D”的位图,并让它用作画线的笔?如果不是,是

c++ - 图像从 24 bpp 格式转换为 16 bpp 格式

我有一张图像,即使用WindowsGDI调用(24bpp)绘制的图像,我需要将此图像转换为16bpp。这是在WindowsMobile上。24bpp-RGB(rrrrrrrrggggggggbbbbbbbb)16bpp-RGB(rrrrrggggggbbbbb)为此我使用下面的代码for(intx=0;x>3|(*iPixel&0x001F0000)>>5;}代码工作正常,但性能不是很好,因为我是逐像素修改的。您能否就此转换提出任何可能的改进建议?提前致谢 最佳答案 您的代码不完整;您不显示指针的类型或如何递增它们。您对每个像素执行

c# - 在 C# 中同时使用图形对象时出错?

我正在创建一个游戏,其中有两个对象处于同一形式,需要每隔几秒分别重新绘制一次(用于动画)。我在一个单独的线程上有一个。他们时不时地产生一个错误,说图形对象已经在使用中。该错误出现的频率较低,因为我在同一表单上构造了2个图形对象:Graphicssprite1=this.CreateGraphics();Graphicssprite2=this.CreateGraphics();然后我将这些对象传递给适当的方法。我担心这可能是一种非常糟糕的做法。解决此问题的任何帮助将不胜感激。 最佳答案 是的,你有问题。您看到的实际错误来自GDI+中

wpf - 有没有办法使用 native C++ 从 WPF 窗口捕获位图?

想象一下MDI应用程序中的一个文档窗口,它包含一个WPF子窗口,例如边栏。如何获得包含WPF像素和GDI(非wpf)像素的位图?我发现,在为Win7任务栏应用程序图标悬停进行缩略图预览时,我在预览中应该是WPF像素的部分变黑了。我当前的方法只是抓取文档窗口的位图捕获。然后我得到一个DC用于预览,从中制作一个内存DC,然后选择我的位图。然后我做了一些大小调整,并将内存dc位转换为真正的dc。我猜BitBlt操作没有考虑到WPF像素是硬件加速的,因此需要从图形硬件中获取这一事实。GDI中的所有内容都得到很好的管理,但是当没有WPF子窗口时,预览图像看起来很好。我想知道是否有可能从nativ

windows - 在 Windows 上检测 DisplayPort(相对于 DVI?)?

我想确定(当前事件的)显示器是否通过DisplayPort连接(出于我的目的,我可以假设未通过DP连接的显示器是DVI连接。)是否有任何WindowsAPI可以获取此信息信息?虽然维基百科确实提到我可以从EDID中读取一些信息,但我没有在displayport.org上看到有关如何处理此问题的任何信息。我还发现了一些关于使用C#中的WmiMonitorIDSystem.Management接口(interface)的代码片段(.NET或C++解决方案都可以),但这似乎没有提供详细信息。需要NVidia或ATI特定扩展的解决方案也是可以接受的,前提是它们可以与当前产品一起使用。

c# - 在 Graphics 对象上绘制图像时出现 gdi+ 一般错误

考虑以下在Windows服务中运行的代码。Graphicsg=Graphics.FromImage(printImage);for(introws=1;rows代码在将图像缩小到另一幅图像上后绘制图像列表。它在大多数情况下工作正常,但有时会在ImagethumbImage=newBitmap的循环中间抛出异常。异常(exception)是“GDI+中发生一般性错误”。无论使用什么图像,它总是在创建第13个图像之后发生。谷歌搜索后,这似乎是保存文件时的常见问题,但这里的区别是没有保存文件。在Graphics对象上绘制图像。有人知道如何解决这个问题吗? 最佳答案