- Canvas (HTML element)
The canvas element is part of
HTML5 and allows for dynamic scriptable rendering ofbitmap images.It was initially introduced by Apple for use inside their own
Mac OS X WebKit component, powering applications like Dashboard widgets and the Safari browser. Later, it was adopted by Gecko browsers (notably Mozilla and Firefox) and Opera [ [http://www.opera.com/docs/changelogs/windows/900/ Opera 9.0 changelog] ] , and standardized by the WHATWG on new proposed specifications for next generation web technologies.Novell manufactures anXForms processor plugin forInternet Explorer , which also provides support for the canvas element. [ [http://forge.novell.com/modules/xfmod/project/?xforms-explorer Novell XForms Explorer] ] Independent efforts to support the canvas feature on Internet Explorer do not require plugins and are based solely on VML andJavaScript . [ [http://me.eae.net/archive/2005/12/29/canvas-in-ie/ Canvas in IE] ] Google has also begun a project to add canvas abilities to Internet Explorer using the same techniques. [ [http://excanvas.sourceforge.net/ Google's Canvas in IE project] ]Canvas consists of a drawable region defined in HTML code with "height" and "width" attributes.
JavaScript code may access the area through a full set of drawing functions similar to other common 2D APIs, thus allowing for dynamically generated graphics. Some anticipated uses of the canvas include building graphs, animations, games, and image composition.Reactions
At the time of its introduction the canvas element met with mixed reactions from the web standards community. Some complained about Apple's decision to create a new proprietary element instead of supporting the SVG standard, which still has not achieved broad web acceptance. Some others argued about the logic upon which canvas was conceived: being completely procedural and not having a descriptive counterpart allowed canvas to 'paint', but drawn elements are not identifiable in a DOM-like way. Other people raised concerns, not about the proprietary extension per se, but in regard to the proposed syntax for those elements. For example, they consider the absence of a
namespace indication to be undesirable. [ [http://ln.hixie.ch/?start=&count=1 Ian Hickson remarks regarding canvas and other Apple extensions to HTML] ]Intellectual property over canvas
On March 14, 2007, WebKit developer
Dave Hyatt forwarded an email from Apple's Senior Patent Counsel, Helena Plotka Workman [ [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2007-March/010129.html[whatwg] Web Applications 1.0 Draft, David Hyatt, Wed Mar 14 14:31:53 PDT 2007] ] , which stated that Apple reserved allintellectual property rights relative to WHATWG’s Web Applications 1.0 Working Draft, dated March 24, 2005, Section 10.1, entitled “Graphics: The bitmap canvas” ("sic") [ [http://www.whatwg.org/specs/web-apps//#scs-dynamic Web Applications 1.0 Early Working Draft - "Dynamic graphics: The bitmap canvas"] ] , but left the door open to licensing the patents should the specification be transferred to a standards body with a formal patent policy. This caused considerable discussion among web developers, and raised questions concerning theWHATWG 's lack of a policy on patents in comparison to the W3C's explicit favoring of royalty-free licenses. Apple later disclosed the patents under the W3C's royalty-free patent licensing terms [ [http://www.w3.org/2004/01/pp-impl/40318/status#current-disclosures HTML Working Group Patent Policy Status – Known Disclosures] ] . The disclosure means that Apple is required to provide royalty free licensing for the patent whenever the Canvas element becomes part of a future W3C recommendation created by the HTML working group. [ [http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-W3C-RF-license W3C patent policy in use by HTML working group] ]ee also
*SVG
*Quartz (graphics layer)
*GDI+
*Cairo (graphics)
*Comparison of layout engines (HTML5) References
External links
* [http://www.whatwg.org/specs/web-apps/current-work/#canvas Canvas description in WHATWG Web Applications draft specifications]
* [http://developer.apple.com/documentation/AppleApplications/Reference/SafariJSRef/Classes/Canvas.html#//apple_ref/doc/uid/-CJBCECGI.html#//apple_ref/doc/uid/ Canvas reference page in Apple Developers Connection (legacy)]
* [http://developer.apple.com/documentation/AppleApplications/Conceptual/SafariJSProgTopics/Tasks/Canvas.html Canvas reference page in Apple Developers Connection]
* [http://developer.mozilla.org/en/docs/Canvas_tutorial Canvas tutorial and introductory page on Mozilla Developer center]
* [http://wiioperasdk.com Wii Opera SDK Canvas Library for Internet Gaming]
Wikimedia Foundation. 2010.