1

私はIE8で実行されているWindows7 IE9を使用しています。これはキャンバスを使用できるためIE9でのみ機能しますが、IE8ではフラッシュキャンバスにフォールバックすると想定されています。ここに私のソースがありますhttp://blog.jackadam.net/2010/alpha-jpegs/ IE で context.drawImage が画像を描画しないという問題が発生しているようです。私は flashcanvas の Google グループに投稿しましたが、応答に時間がかかるようです。

;(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

flashcanvasproで動作しました。対象となるフラッシュ プレーヤーによって、最大画像サイズが異なります。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 player にアップデートしてくれる人が必要です

于 2015-04-13T23:31:31.997 に答える
0

これに対する解決策は、古いバージョンの flashcanvas でのみ動作し、かつ flashcanvas pro でのみ動作することでした... ウェブサイトの 2 番目のフッターに記載されているように

この手法は、FlashCanvas Pro を必要とする globalCompositeOperation 操作を使用します。非営利目的の場合は無料、商用ライセンスの場合はわずか 31 ドルです。

于 2013-07-17T16:19:07.840 に答える