首页 / 知识
用于图形应用程序的快速,像素精度2D绘图API?
2023-04-15 14:37:00

Fast, Pixel Precision 2D Drawing API for Graphics App?我想创建一个跨平台的绘图程序。 编写我的应用程序的一个要求是我在画布上具有像素级精度。 例如,我想编写自己的线条绘制算法,而不要依赖其他人。 我不希望有任何形式的抗锯齿(同样,需要像素级控制。)我希望屏幕上的用户交互快速且响应迅速(正在等待我编写快速算法的能力。) 理想情况下,我想用Python或Java作为第二选择。 必须具有轻松使最终应用程序跨平台的能力。 只要有必要,我将提交不同操作系统上的不同API,只要我可以在它们周围编写一个抽象层即可。 有任何想法吗? 附录:我需要在屏幕上绘制的能力。 绘制到文件,我已经弄清楚了。 我本周刚刚整理了一些幻灯片和演示代码,以使用库pyglet使用python中的OpenGL使用OpenGL进行2d图形处理。您可以在这里看到我的东西:http://tartley.com/?p=378 它非常快(相对于python),我设法在屏幕上移动了约1,000个独立定位和定向的对象,每个对象都有约50个顶点。 它非常可移植,我在此环境中编写的所有代码都可以在Windows,Linux和Mac(甚至像Pypy这样晦涩的环境)上运行,而无需我考虑。 更新:关于同一主题也有很多新帖子:http://tartley.com/?cat=27 适用于Python的Pyglet库可能适合您的需求。它使您可以使用OpenGL(一种跨平台的图形API)。您可以禁用抗锯齿和捕获屏幕区域到缓冲区或文件。此外,您可以使用其事件处理,资源加载和图像处理系统。您可能还可以将其绑定到PIL(Python图像库),以及绝对流行的跨平台矢量图形库Cairo中。 我提到Pyglet而不是纯PyOpenGL,因为Pyglet透明地处理了许多丑陋的OpenGL内容,而您却毫不费力。 我和一个朋友目前正在使用Pyglet进行绘图程序。有一些怪癖-例如,OpenGL在OS X上始终是双缓冲的,因此我们必须将所有内容绘制两次,一次绘制到当前帧,另一次绘制到另一帧,因为每当显示刷新时,它们都会被翻转。您可以在此Subversion存储库中查看我们当前的进度。 (主干中的Splatterboard.py是您要运行的文件。)如果您不打算使用svn,我很乐意通过电子邮件将最新消息的.zip发送给您。如果您愿意的话,可以随时窃取代码。 如果打开了语言选择,则使用Haxe创建的Flash文件可能会存在。 Haxe是免费的,并且是一种完整的动态编程语言。然后是相关的Neko,即虚拟机(例如Java,Ruby,Parrot ...),可在Mac,Windows和Linux上运行。作为某种形式的Flash的新改进形式,它自然可以吸引东西。 http://haxe.org/ 我会推荐wxPython 它是一个漂亮的跨平台平台,您可以按像素进行控制,如果您改变主意,可以将其与pyglet或agg之类的库一起使用。 您可以在docs和demos下载中找到一些有用的示例。 如果您想使用C ++,QT的Canvas a QPainter非常适合此工作。它是跨平台的。 QT有一个python绑定,但我从未使用过。 对于Java,使用SWT,画布的像素级操作有些困难和缓慢,因此我不建议这样做。另一方面,Swing的Canvas非常好并且响应迅速。我从未使用过AWT选项,但是您可能不想去那里。 |
最新内容
相关内容
linux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据python绘图初步
python绘图初步,代码,网上,时间,数据,名称,官网,标准,培训,简介,模块,Matplotlib:主要就是学习这个模块,用来绘制二维图:线图,直方图,饼图,散点图以python使用matplotlib绘图怎么在线
python使用matplotlib绘图怎么在线上标注?,地方,培训,坐标轴,图像,范围,画图,示例,注释,文字描述,以上,python画图常用标注包含,坐标轴的值和python如何读取像素值
python如何读取像素值,环境,设备,培训,像素,函数,坐标,逻辑,原型,示例,模块,python如何读取像素值的方法:使用image模块中的getpixel函数获得Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1关于图像:密集的逐像素反向投影
关于图像:密集的逐像素反向投影,关于图像:密集的逐像素反向投影,2D,空间,反向投影,3D,Dense pixelwise reverse projection我看到了一最小化时如何将.net应用程序放在系
最小化时如何将.net应用程序放在系统托盘中?,最小化时如何将.net应用程序放在系统托盘中?,应用程序,最小化,代码示例,很好,how to put如何在Visual Studio 2008 Web应用
如何在Visual Studio 2008 Web应用程序中从sourcesafe中排除bin文件夹?,如何在Visual Studio 2008 Web应用程序中从sourcesafe中排关于使C#/ Winform应用程序跨平台:使
关于使C#/ Winform应用程序跨平台:使C#/ Winform应用程序跨平台-我应该使用AIR,Mono还是其他工具?,关于使C#/ Winform应用程序跨平台:使C#/如何将C ++ Windows dll合并到C#应
如何将C ++ Windows dll合并到C#应用程序exe中?,如何将C ++ Windows dll合并到C#应用程序exe中?,数据,目标,应用程序,程序,How can a C++如何在不使用ant的情况下从命令行
如何在不使用ant的情况下从命令行编译使用Google Webdriver的Java应用程序,如何在不使用ant的情况下从命令行编译使用Google Webdr关于java:如何从Swing应用程序检测
关于java:如何从Swing应用程序检测到PC正在关闭?,关于java:如何从Swing应用程序检测到PC正在关闭?,运行,用户,检测,事件,How can I detec