 鲜花( 0)  鸡蛋( 0)
|
Windows 画图程序一直伴随着 Windows 各个版本,这个很简单,几乎没有什么用处的程序拥有最基本的绘图功能,很适合用来涂鸦。HTML5 的 Canvas 对象使在线绘图成为可能,虽然 HTML5 还远未成熟,但很多人已经迫不及待地用它设计一些让人惊叹的应用。' o3 L/ f, T$ {
! d& f r9 O" P9 i3 y% @9 p
' B- h( z7 \+ g; f; a$ d. K0 C" l6 R% _7 Q7 ^
CanvasPaint 是一个基于 HTML5 的标准 Windows 画图程序,它拥有和 Windows 画图程序一模一样的界面和操作,功能也几乎完全一样,在特定浏览器的支持下,你甚至可以将最后的作品保存到本机。这并不是最近的项目,2006年就有了,因此,目前绝大多数支持标准的浏览器(Firefox,Safari,Chrome,Opera)都可以正常使用这个程序。以下是作者对这个项目的一些解释。" [* ~3 R6 C; c. c7 v+ v$ E N
3 o1 d: u7 j5 k5 i) N0 k9 @; t$ I为什么要开发这个程序? ; s ~. b( U. k c+ X
目的不是为了开发一个 Windows 画图程序,而是体验 HTML5 的 silkroad game gold 功能。# ~8 I. H3 `1 o( \/ z
% `- {: J; {- n$ q
如何使用
( ?6 G* ?' O7 U; S. W& s4 @和标准 Windows 绘图程序一样。3 I3 C5 [) u& N. g4 {0 W8 t
1 M$ K' Q+ d; X" H5 q) c0 G+ b$ d能保存吗? 1 e( a, r$ O' V7 B! F
是的,但只支持 Firefox 2 和 Opera 9 (译者注:这是作者2006年就实现的一个程序)。在本机保存,选择 File 菜单中的 Download,在线保存,选择 Save online,会自动生成一个 URL 在线显示你的作品。) m9 e. q) ]( y+ ^; a) T
. }' B4 z) W7 @9 K' q
浏览器本身的右键菜单影响使用
( w: A) P6 ~( ?: Y* Z8 J可以在浏览器的设置中禁用右键菜单。( [6 ^1 d. F, S5 R, m
+ B1 w: T( y0 w# D+ r为什么有些功能不能用? : |% u/ W: d" r3 G5 U k
一些功能支持特定版本的浏览器(译者注:这是就2006年而言):: u; V1 E# ^3 U+ L* R3 v c- J
+ r1 [, J. z' ~Color pickerFirefox 2.0Opera 9 Flood fillOpera 9 Save imageFirefox 2.0Opera 9 Open URLFirefox 1.5Opera 9Latest WebKit Canvas 对象好用吗? " G5 u9 d, P9 c- d6 @4 q# V
对那些不需要跨浏览器支持的应用很好用。但在绘画中,最大的问题是,受限于 mousemove 事件的刷新率,你不太容易发现光标的位置,使用喷笔的时候尤其明显。另外,当尺寸变得很大时,速度变得很慢,没有 getPixel() 功能。/ F, d: w8 u0 ~4 |
$ g1 s5 {& ~* N
技术细节
/ u! T0 J0 j5 U# ]1 v. E0 d) i程序中使用了 5 个 Canvas 对象。
1 l% r$ N# B% w6 a, w# ?2 r5 h" h0 p' b% }+ T: t) S, u+ A
一个主画板,一个是透明画板层浮动在上方显示预览绘画内容,一个隐藏的 Canvas 用来缓存选择的内容,另一个用来缓存反悔状态,一个用在程序标题栏,用来显示渐变色。
! T) y7 H- p8 ^其他人的 HTML5 Canvas 实验
6 L6 i* |) W6 lCanvascape 3D (用 HTML5 实现简单的第一人称射击游戏)
+ E* c% a6 j& z! l' |" KCanvasGraph (一个 HTML5 Canvas 绘图 JavaScript 类库 )
# Z4 j, h. i% C0 k5 I: S' z3 @Image reflections (用 HTML5 Canvas 实现图像倒影)
" g) p+ |7 h. q. r. L, J$ oCanvas Painter (一个更为简单的 Canvas 画图程序)
' `& q% b u* Q, F% [6 A. z$ v
# z' @( Z7 e: E) d+ W) Z, i. W c1 X真正令人赞叹的 HTML 画图程序 Q3 u/ E0 V: u6 r
如果上面的程序已经让你对 HTML5 的 Canvas 功能感到鼓舞,下面这个画图程序会让你赞叹。拥有不输桌面的界面体验和流畅感,在多屏幕电脑上,我甚至有将那些浮动工具面板拖到第二个屏幕的冲动。 |
|