apng.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*!
  2. {
  3. "name": "Animated PNG",
  4. "async": true,
  5. "property": "apng",
  6. "tags": ["image"],
  7. "builderAliases": ["img_apng"],
  8. "notes": [{
  9. "name": "Wikipedia Article",
  10. "href": "https://en.wikipedia.org/wiki/APNG"
  11. }]
  12. }
  13. !*/
  14. /* DOC
  15. Test for animated png support.
  16. */
  17. define(['Modernizr', 'createElement', 'addTest', 'test/canvas'], function(Modernizr, createElement, addTest) {
  18. Modernizr.addAsyncTest(function() {
  19. if (!Modernizr.canvas) {
  20. return false;
  21. }
  22. var image = new Image();
  23. var canvas = createElement('canvas');
  24. var ctx = canvas.getContext('2d');
  25. image.onload = function() {
  26. addTest('apng', function() {
  27. if (typeof canvas.getContext === 'undefined') {
  28. return false;
  29. }
  30. else {
  31. ctx.drawImage(image, 0, 0);
  32. return ctx.getImageData(0, 0, 1, 1).data[3] === 0;
  33. }
  34. });
  35. };
  36. image.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACGFjVEwAAAABAAAAAcMq2TYAAAANSURBVAiZY2BgYPgPAAEEAQB9ssjfAAAAGmZjVEwAAAAAAAAAAQAAAAEAAAAAAAAAAAD6A+gBAbNU+2sAAAARZmRBVAAAAAEImWNgYGBgAAAABQAB6MzFdgAAAABJRU5ErkJggg==';
  37. });
  38. });