1

我在 IE8 中运行的 Windows7 IE9 上。这仅在 IE9 中有效,因为我可以使用画布,但在 IE8 中,它应该回退到 Flash 画布。这是我的来源http://blog.jackadam.net/2010/alpha-jpegs/现在看来我在 IE 中遇到了 context.drawImage 不绘制图像的问题?我已经在 flashcanvas 谷歌组上发帖,但他们似乎需要一些时间来回复,所以希望这里可能有 flashcanvas 大师。

;(function() {

var create_alpha_jpeg = function(img) {

    var alpha_path = img.getAttribute('data-alpha-src')
    if(!alpha_path) return

    // Hide the original un-alpha'd
    img.style.visiblity = 'hidden'

    // Preload the un-alpha'd image
    var image = document.createElement('img')
    image.src = img.src + '?' + Math.random()
    console.log(image.src);
    image.onload = function () {
        console.log('image.onload');

        // Then preload alpha mask
        var alpha = document.createElement('img')
        alpha.src = alpha_path + '?' + Math.random()
        alpha.onload = function () {
            console.log('alpha.onload');
            var canvas = document.createElement('canvas')
            canvas.width = image.width
            canvas.height = image.height
            img.parentNode.replaceChild(canvas, img)

            // For IE7/8
            if(typeof FlashCanvas != 'undefined') FlashCanvas.initElement(canvas)

            // Canvas compositing code
            var context = canvas.getContext('2d')
            context.clearRect(0, 0, image.width, image.height)
            context.drawImage(image, 0, 0, image.width, image.height)
            //context.globalCompositeOperation = 'xor'
            //context.drawImage(alpha, 0, 0, image.width, image.height)

        }

    }

}

// Apply this technique to every image on the page once DOM is ready
// (I just placed it at the bottom of the page for brevity)
var imgs = document.getElementsByTagName('img')
for(var i = 0; i < imgs.length; i++)
create_alpha_jpeg(imgs[i])

})();
4

2 回答 2

0

对此的解决方案是它只适用于旧版本的 flashcanvas 并且它只适用于 flashcanvas pro...如网站第二页脚所述

该技术使用 globalCompositeOperation 操作,该操作需要 FlashCanvas Pro。非盈利用途免费,商业许可证仅需 31 美元。

于 2013-07-17T16:19:07.840 回答
0

我让它与 flashcanvaspro 一起工作。根据它所针对的最大图像大小不同的 Flash 播放器。Flash Player 10 将位图的最大尺寸增加到最大像素数 16,777,215。Flash Player 9 限制(2880 x 2880 像素)。

https://helpx.adobe.com/flash-player/kb/size-limits-swf-bitmap-files.html

需要有人将 flashcanvas 更新到最新的 flash 播放器

于 2015-04-13T23:31:31.997 回答