创意绘画软件:ArtStamper的创新之旅

在艺术创作的世界里,传统的绘画软件往往模仿纸上绘画的体验,但这并不是唯一的方式。ArtStamper是一款与众不同的应用程序,它旨在让每个人都能轻松地表达自己的艺术天赋,无需任何绘画技巧。这款软件专为一体化电脑设计,属于娱乐类别,它允许用户通过简单的盖章技术来绘制图片。用户可以选择一个预设的背景图像,然后在任何喜欢的位置盖章预绘制的对象,构建出完整的画面。这种设计非常适合年幼的孩子,但即使是成年人也会享受这款应用程序带来的乐趣。

ArtStamper还提供了更高级的绘画方式,包括通常在普通绘画程序中找到的功能。这款应用程序适合拖放式设计,非常适合基于触摸的电脑。它甚至可以用于更实际的设计和布局目的,比如成年人使用它来规划房屋的园林布局,或者父亲在工作中使用它来规划新办公室的布局。

这款软件的与众不同之处在于它还包含了动画功能。对象(印章)不必是固定的图像,还可以支持帧动画。图片可以变得栩栩如生。想象一下,在图片上叠加真实的3D对象会是什么样子?这款软件的目标是推动艺术和设计的极限,同时仍然让它变得如此简单,即使是小孩子也能制作出令人兴奋的图片和动画。

这款软件的真正区别在于它的开发方式以及其在最低硬件要求下运行的独特能力。虽然这次比赛中使用的一体化电脑背后有一些强大的硬件,但想象一下,未来的“轻量级”一体化电脑,使用基于Intel Atom的SOC(系统级芯片)!想象一下,一个图形应用程序可以轻松地在Atom CPU/GPU上运行,并且只有2GB的内存,以及如此小的占用空间,以至于可以使用更小的SSD(固态硬盘)!

这款软件的目标是“快速流畅”,即使是在最低硬件要求下也是如此。

开发工具的选择:

软件将使用PowerBasic原生代码32位编译器为Windows创建。PowerBasic专为构建快速且小巧的应用程序而设计,适用于基于Intel的Windows电脑。PowerBasic是少数几个用汇编语言编写的现代编译器之一,编译速度快。快速编译速度对于使用更敏捷的方法进行更快的开发至关重要。使用PowerBasic创建的可执行文件不需要任何运行时环境,不需要.NET框架,只使用WIN32 API。

对于这样一个项目来说,最大的挑战是所有的低级图形和对RAD(快速应用开发)系统的需求。这将通过使用EZGUI 5.0 Professional开发系统来处理。这个工具是一个GUI框架,专门为与PowerBasic编译器一起使用而设计,并且本身是用PowerBasic编写的。GUI引擎以几个小的DLL形式提供。核心运行时DLL大约只有700KB大小,3D图形控制DLL大约只有225KB大小。框架不使用DirectX,而是使用WIN32 GDI,并使用OpenGL 2.0进行3D动画

本文的作者也是这个GUI框架的开发者,因此他将编写应用程序中的所有代码,即使使用了外部GUI框架。

那么,这个开发系统提供了什么,使得这个应用程序不仅可能,而且能够在很短的时间内构建呢?

应用程序的核心是图形,所以应用程序中的两个自定义控件将用于大部分用户界面。第一个是框架的Canvas控件。这个控件为开发提供了一个独特的基础。它支持双缓冲,每张图像有两个缓冲区。缓冲区可以定义为DDB(设备依赖位图)以加快显示速度,或者定义为DIB(设备独立位图)以获得更低级别的控制。DIB引擎允许低级访问所有像素,而不需要调用任何GDI函数。通过使用低级指针直接访问像素,可以有更多的选择来构建绘图引擎。

Canvas控件还内置了一个2D专有精灵引擎,因此2D精灵可以移动/显示/隐藏,动画(帧动画),翻转甚至抗锯齿和alpha混合。精灵引擎甚至可以在最低硬件要求下以合理的帧率动画化数百个精灵,而不需要DirectX。

框架还有一个图形引擎,用于绘制各种典型的图形元素,包括位图、图标、图像列表、富文本、渐变、文本、形状等。Canvas控件中还有一个效果引擎,因此绘图命令可以先在效果缓冲区上绘制,然后被alpha混合和抗锯齿到Canvas上。

为了添加真实的3D动画,软件将使用glCanvas控件而不是普通的Canvas控件。glCanvas控件基于OpenGL 2.0,并内置了自己的3D脚本语言。这个控件非常独特,因为它是一个混合控件,基于2D Canvas控件。它做了2D Canvas所做的一切,并且还增加了一个3D层来显示3D对象。3D引擎支持STL文件格式,用于高多边形计数的3D模型,通常用于3D打印。它还支持各种3D原语。

GUI框架还有一个海龟图形引擎,用于定义基于矢量的图像,使用一个易于使用的海龟图形脚本语言。孩子们尤其会喜欢设计他们自己的海龟图形对象,然后可以在应用程序中的任何绘画中使用。

海龟图形脚本语言可以暴露给最终用户,用于定义自己的海龟图形矢量图像。脚本定义很简单,如下所示:

VB CASE 0 ' Draw Lines D$= " V1,602,322;" D$=D$+ " U0;F0;P3;M10,10;L590,10;P10;W30;M20,40;L580,40;W4;P5;M10,70;L100,90,90,4;" D$=D$+ " P6;M220,70;W20;L100,150,120,3;P1;W15;M320,70;L40,90,45,8;" D$=D$+ " P3;W12;M500,100;L40,180,60,6;P1;W15;M10,210;L110,310;M110,210;L10,310;" D$=D$+ " P9;W50;M200,210;L570,290;P13;L200,250;P14;L400,290;" D$=D$+ " P2;W15;M530,200;L45,180,30,12,2;W3;M50,47;P1;L20,45,90,36,1;" CASE 1 ' DRAW CIRCLES D$= " V1,602,322;" D$=D$+ " U0;P1;F0;B4;W8;M10,10;E300,200,0;H13;M50,50;P2;W3;E300,200;H0;P2;M340,10;B14;W15;E100,100;" D$=D$+ " H3;P2;W1;M360,130;B10;E80,120;H0;W5;P1;B3;M10,210;E400,100,4;M450,30;E121,121,7;" D$=D$+ " M480,200;E100,100,17;M495,215;E70,70,12;W3;B15;M503,220;E15,15;M543,220;E15,15;" D$=D$+ " X1;M530,45;P1;B5;E120,80;P2;B16;E60,40;" CASE 2 ' Draw Rectangles D$= " V1,602,322;" D$=D$+ " U0;P1;F0;B4;W4;M10,10;R300,200;H13;M50,50;P2;W3;R300,200;H0;P6;M400,10;B3;W15;R100,100,10,10;" D$=D$+ " H3;P2;W1;M400,130;B10;R80,120;H0;W2;P1;B15;M10,270;R500,45,100,20;" CASE 3 ' Draw Scalable Text D$= " V1,602,322;" D$=D$+ " P1;C0,0,128;P2;C200,200,255;G1,2,1;P1;C255,255,255;" ' fonts supported are: ' Arial ' Courier New ' Times New Roman ' The R macro draws the text last defined by the T macro ' instead of a rectangle ' EZGUI will center the text within the rectangle D$=D$+ " M30,30;TTimes New Roman,BI|Hello There!;R542,266;"

图形库:

像这样的应用程序也应该附带一些预定义图像和印章的图形库。和妻子都有一定的艺术能力,有一套很好的图形艺术开发程序,可以快速创建独特的艺术内容供应用程序使用。可以使用像Corel Draw、Corel Paint、Anime Studio等应用程序来创建应用程序的初始内容。最喜欢的一个用于使用3D制作独特现实背景的应用程序是Vista Pro 4.0。例如,它可以创建这样的真实风景:

开发者:

已经编程超过25年了。第一次接触编程是在1975年,在1980年代,在Texas Instruments TI-99家用电脑上自学了编程。Commodore 64是第一个真正使用编译器进行开发的地方,甚至使用编译器(Abacus Basic编译器)编写了自己的编译器,只是为了构建第一个家庭友好型视频游戏。在这个过程中,学习了6502机器语言。第一笔商业编程是在CPM上使用Kaypro便携式电脑,然后是IBM兼容电脑。为当地企业编写了定制软件,为小型家庭经营的商店,如家具店、视频租赁店、汽车修理店甚至当地警长部门编写软件。还为当地工业编写了软件。编写了质量控制、工程、会计、销售点和工作跟踪的应用程序。

近年来,业务为PowerBasic市场的程序员开发工具。十多年来,一直是高级WIN32 API程序员,为编程开发GUI引擎和拖放式可视设计器/代码生成器。GUI引擎是许多商业软件产品的支柱。一些大公司正在使用客户开发的软件,他们使用GUI框架来开发他们的软件。一个很好的例子可以在这个YouTube视频中找到:

Chevron Deep Water Pipeline System

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485