diff --git a/src/core/renderers/canvas/utils/canUseNewCanvasBlendModes.js b/src/core/renderers/canvas/utils/canUseNewCanvasBlendModes.js index b7f9848..492cea4 100644 --- a/src/core/renderers/canvas/utils/canUseNewCanvasBlendModes.js +++ b/src/core/renderers/canvas/utils/canUseNewCanvasBlendModes.js @@ -1,4 +1,22 @@ + +/** + * Creates a little colored canvas + * @return {canvas} a small canvas element + */ +var createColoredCanvas = function(color) +{ + var canvas = document.createElement('canvas'); + canvas.width = 6; + canvas.height = 1; + + var context = canvas.getContext('2d'); + context.fillStyle = color; + context.fillRect(0,0,6,1); + return canvas; +}; + + /** * Checks whether the Canvas BlendModes are supported by the current browser * @@ -11,14 +29,8 @@ return false; } - var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/'; - var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg=='; - - var magenta = new Image(); - magenta.src = pngHead + 'AP804Oa6' + pngEnd; - - var yellow = new Image(); - yellow.src = pngHead + '/wCKxvRF' + pngEnd; + var magenta = createColoredCanvas('#ff00ff'); + var yellow = createColoredCanvas('#ffff00'); var canvas = document.createElement('canvas'); canvas.width = 6; @@ -30,15 +42,16 @@ context.drawImage(yellow, 2, 0); var imageData = context.getImageData(2,0,1,1); - + if (!imageData) { return false; } - + var data = imageData.data; - + return (data[0] === 255 && data[1] === 0 && data[2] === 0); }; + module.exports = canUseNewCanvasBlendModes;