Is there a Javascript library which has built-in features for quickly creating a Paint-like web application using the canvas element?
EDIT: So, far, I have found Javascript libraries that allow easy animation of canvas elements -- such as Raphael JS -- and Javascript tutorials for creating simple Paint apps, but no robust libraries for Paint-like applications.
EDIT 2: I found a Javascript tutorial on a pretty nice looking Paint app using the canvas element. I'd still like to see what others have found.
Literally Canvas fits this exact purpose: http://literallycanvas.com
"Literally Canvas is an extensible, open source (BSD-licensed), HTML5 drawing widget...You can use it to embed drawing boards in web pages."
You can try painterro. It can be used for pasting and processing screenshots, cropping, drawing primitives and text, rotating and resizing (changing resolution)
I think the closest you'll get is to expand on what that tutorial has gone through.
It's hard to create "general purpose" paint-like functionality due to the wide range of requirements.
Raphaël
Raphaël doesn't use Canvas. It uses SVG on browsers that support it or VML on Internet Explorer.
SVG
If you want an SVG solution designed specifically for drawing then take a look at:
See this demo.
Canvas
If you want to use Canvas but you need a retained mode rendering then see:
Update (February 2014)
There is an npm package spainter.
Live Demo
There is processingJS, but as it is port of the JAVA bassed processing you write your code in "javaish" processing language. But after all you could create what an paint like app. Another framework is fabricJS which is also really great to work with canvas.