Articles of graphics

如何直接写入到linux framebuffer?

如何直接写入到linux framebuffer?

在窗口上绘制位图时不希望的消除锯齿

我正在渲染一个图像到一个System.Drawing.Bitmap,然后将其绘制到一个窗口中,但是我可以看到边缘正被反锯齿。 如何防止这一点? 一些更多的细节。 位图是这样创build的: new Bitmap (this.Width, this.Height, Imaging.PixelFormat.Format32bppArgb) 然后我将像素设置为Color.Black或Color.White。 我已经尝试使用Bitmap.SetPixel并使用Bitmap.LockBits将字节直接写入位图数据。 一旦位图准备就绪,我在Form.OnPaint覆盖中绘制它: pea.Graphics.DrawImage ( !this.bitmap , this.ClientRectangle , new Rectangle (0, 0, this.Width, this.Height) , GraphicsUnit.Pixel ) 每个像素应该是黑色或白色,但我可以看到在边缘的像素是灰色的。

API来获取graphics或video内存

我想获得你可以在显示设置或使用API​​的设备pipe理器中看到的adpater RAM或graphicsRAM。 我在C ++应用程序。 我已经尝试在网上seraching,并根据我的RnD我得出结论,我们可以从1 DirectX的SDK结构称为DXGI_ADAPTER_DESC的graphics内存信息。 但是,如果我不想使用DirectX API。 2. Win32_videocontroller:但是,如果video控制器的可用性是离线的,这个类并不总是给你adapterRAM信息。 我已经在Vista上检查过了。 有没有其他的方式来获得graphicsRAM?

通过WinAPI确定英特尔高清显卡版本

所以我试图通过WinAPI函数获取graphics卡上的信息,但是如何获取我的确切卡信息有一个问题。 我已经编写代码来调用EnumDisplayDevices,并通过我的电话收到DeviceString“英特尔(R)高清显卡系列”。 但是,这并不是告诉我确切的卡,例如英特尔高清显卡家族有一个4200,4400,等等(从我的理解)。 我search了更多的方法来find这些信息,甚至通过registry,仍然使我的描述string“英特尔(R)高清显卡家庭”…现在我在这里。 非常感谢任何能帮助我的人,这实际上是一个stackoverflow线程,导致我在EnumDisplayDevices的方向在第一:)

我应该如何在Windows上创build自定义graphics控制台/terminal?

Windows控制台界面(认为cmd窗口)是给用户一个非常简单的GUI。 然而,处理渲染,用户input和滚动的效率水平非常高。 用于创build此接口的方法无疑与传统桌面GUI的方法完全不同。 我有兴趣为Windows创build自己的定制控制台/terminal,最好使用基于C#和.NET的技术(例如托pipe的GDI +或WPF)。 作为一个起点,我会非常热衷于重新创build标准的简单Windowsshell程序。 然后,我可以扩展的东西,并从那里添加function。 我正在寻找关于如何创build这样一个控制台UI的一般指导,但是一些特定的要点包括: 我应该使用什么样的渲染模型? 渲染循环? 部分更新(如WPF)? WinForms模型(不知道这是如何工作的)? 渲染模型中使用了什么样的caching? 字体是如何加载的,它们是如何渲染的? 他们是标准的TrueType字体,位图字体还是其他? 滚动如何有效地执行? 任何你认为可能是相关的! 事实上,对于内置的Windows控制台UI(甚至是优秀的LinuxterminalUI)如何执行这些操作(以及如何模拟它们)的任何解释都是理想的。 编辑:要清楚,我真的想完全从头开始。 基于像GDI +或WPF的graphics框架,但没有更多。

将R绘图复制到具有自定义大小的剪贴板

有没有办法让R / RStudio复制到自定义大小剪贴板的情节? RStudio有这个function,但你必须每次定义大小,并且有一些额外的点击,我相信是可以避免的。 我尽我所能保存为JPEG或其他file="clipboard" ,然后 – 绘制后 – dev.off() 。 没有错误信息,但也没有在剪贴板中。 这里是一个例子: data(mtcars) jpeg(file = "clipboard",width = 800, height = 600, units = "px", pointsize = 12, quality = 100, bg = "white", res = NA, family = "", restoreConsole = T) hist(mtcars$mpg) dev.off() 关于如何实现的任何想法?

GDI得到了加速。 有谁知道这是什么时候发生的?

为了勾画这个问题的背景:在工作中,我们使用Dell Precision工作站。 我目前使用的是NVidia Quadro FX1700。 我的团队正在开发用于实时数据采集系统的graphics组件。 所以我们总是看着graphics操作是否占用了太多的CPU时间。 对于快速检查,我们有几个testing程序,我们运行,以指定的速度(例如10帧/秒)绘制场景,我们使用普通的旧任务pipe理器来查看CPU使用情况。 其中一个程序是GDI的DrawRectangle调用(这是填充)的沉重。 这个程序一直用来消耗大约40%的CPU用户时间,但大约一年左右(只是在这里猜测),它只使用大约2-3%的内核时间。 所以很显然,这里正在进行一些硬件加速。 事实上,如果我打开HW-accell,我们又回到原来的40%的用户时间。 所有这些当然都是好消息,因为我们已经在考虑去OpenGL了。 年复一年的GDI从来没有得到硬件加速的好处。 直到前一段时间。 有没有人对此有更多的了解? 微软做了这个吗? 还是gfx卡供应商具体? 编辑 thnx的答案已经(Ferrucio,Torlack和罗布·沃克),但我的问题还没有得到答复。 我们在这里谈论一个填充矩形。 可能是最简单的function优化:只需发送一些坐标到GPU,让它撕裂。 然而它总是在CPU端执行。 到目前为止,答案让我相信,NVidia终于看到了光(超过10年)和加速GDI。 并没有公布这个? 根本没有任何信息可以find。 我的内部客户问我关于graphics加速的问题,我只能说“我们很幸运”。 EDIT2 根据不同的答案,这似乎是司机有关。 那么,NVidia多年来为其工作站卡制作了蹩脚的GDI驱动程序。 GDI没有加速,所有的testing证实了这一点。

如何结合Tkinter的窗户?

我有两组代码,第一部分是乌龟graphics窗口,第二部分是一个Tkinter窗口。 我应该如何将这两个部分合并到一个窗口? 我的代码的第一部分 from turtle import * def move(thing, distance): thing.circle(250, distance) def main(): rocket = Turtle() ISS = Turtle() bgpic('space.gif') register_shape("ISSicon.gif") ISS.shape("ISSicon.gif") rocket.speed(10) ISS.speed(10) counter = 1 title("ISS") screensize(750, 750) ISS.hideturtle() rocket.hideturtle() ISS.penup() ISS.left(90) ISS.fd(250) ISS.left(90) ISS.showturtle() ISS.pendown() rocket.penup() rocket.fd(250) rocket.left(90) rocket.showturtle() rocket.pendown() rocket.fillcolor("white") while counter == 1: move(ISS, 3) move(rocket, 4) main() 第二部分 […]

调用更新过程时,TStatusBar会闪烁。 方法来无痛地解决这个问题

所以,这里是我刚刚阅读的讨论: http : //www.mail-archive.com/delphi@delphi.org.nz/msg02315.html BeginUpdate和EndUpdate不是我需要的程序… 重写API调用? 我试图从ComCtrls单位得到更新程序代码,坚果没有find… 也许你可以在这里发布一个代码来修复状态栏compoent的闪烁,如果唯一的文本改变了吗? 我的意思是 – 像TextUpdate或某种TCanvas方法或PanelsRepaint …? 闪烁是由以下代码引起的: Repeat BlockRead(Fp, BuffArrayDebug[LineIndex], DataCapac, TestByteBuff); // DataCapac = SizeOf(DWORD) ProgressBar1.StepIt; if RAWFastMode.Checked then begin // checks for fast mode and modifyies progressbar if BuffArrayDebug[LineIndex] = 0 then begin ProgressBar2.Max := FileSize(Fp) – DataCapac; ProgressBar2.Position := (LineIndex + 1) * DataCapac; LineDecr := […]

Windows成像组件 – Direct2D C ++ – 绘图,保存

使用Windows映像组件(WIC),我想为我的Windows桌面应用程序(Direct2D / C ++与Windows 7 SP1 – Visual Studio 2013) select任何types的RenderTarget(Direct2D Hwnd / Bitmap / WICBitmap – 等)进行绘制 创build一个空的位图(D2D1Bitmap或IWICBitmap – 无论哪个适用) 开始绘制 – 填充颜色,绘制一些线条和椭圆 – 结束绘制==>(全部在位图中) 在某些时候,我需要将绘制的内容保存在位图中作为我的电脑中的图像 将位图放在渲染目标的x1,y1(左上angular的xy坐标)和x2,y2(右下angular的xy坐标)中。 因为窗口的其余部分将被工具栏使用。 我如何使用C ++ / Direct2D来实现这一目标? GDI +我的function代码: Bitmap* pBmp = NULL; //create null or empty bitmap Graphics* pGrBuf = NULL; //initialise graphics to null pBmp = new […]