我在运行IE8的Windows7 IE9上。这在IE9中工作只是因为我可以使用canvas但是在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])
})();
答案 0 :(得分:0)
对此的解决方案是它只适用于较旧版本的flashcanvas,它只适用于flashcanvas pro ...如网站第二页脚中所述
此技术使用globalCompositeOperation操作 需要FlashCanvas Pro。免费用于非营利性使用或仅需31美元 商业执照。
答案 1 :(得分: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播放器