- From: <bugzilla@jessica.w3.org>
- Date: Wed, 29 Sep 2010 03:57:12 +0000
- To: public-html-bugzilla@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10799 Summary: drawImage/pattern filters underspecified Product: HTML WG Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: HTML Canvas 2D Context (editor: Ian Hickson) AssignedTo: ian@hixie.ch ReportedBy: vladimir@pobox.com QAContact: public-html-bugzilla@w3.org CC: mike@w3.org, public-html-wg-issue-tracking@w3.org, public-html@w3.org Created attachment 915 --> http://www.w3.org/Bugs/Public/attachment.cgi?id=915 testcase This came from mozilla bugzilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=600390. The canvas spec doesn't really say anything about filters, and especially how they apply to drawImage/patterns. The attached testcase demonstrates the problem -- it doesn't render identically on any of the canvas-implementing browsers (firefox, opera, chrome, ie9 -- don't have safari handy to test). The two sets in the testcase are using a canvas as a source and using an image, both with the same contents; usually there's no difference between the two. The large squares are, from left to right: 1) straight drawImage 0,0,60,60 -> 0,0,300,300 2) stairstepped drawImage, doing 2 draws per horizontal band 3) stairstepped fill() using a no-repeat pattern source 4) 300x300 rectangle fill, but with source offset by 150,150 5) same as #4, but rotated as well to examine antialiasing effects I -think- Firefox renders it the most "correctly", even though it's almost never what you want; but mathematically it's correct, and it causes the least change when under transforms -- with no repeat, the area outside of the source's defined bounds is transparent black; so at edge pixels when scaling up, when you sample acros that boundary, you get half of the transition between transparent black and the edge color. IE9 renders "what I want", but it's also the most difficult to specify precisely. Opera also gets close, except all their paths are offset by 5 pixels for some reason. Chrome is quite bad here, because I think it's trying to be smart about using the source rect for drawImage as a standalone image in its own right -- this causes problems if you, for example, try to draw a scaled-up image piecemeal, as you'll get seams. It also uses pad/clamp behaviour for a pattern that's specified as no-repeat -- however, the spec doesn't actually define no-repeat, so their interpretation is as good as any other. -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Wednesday, 29 September 2010 03:57:15 UTC