HTML5 Canvas ShadowBlur和Flip Horizo​​ntal

时间:2012-02-03 19:34:04

标签: javascript jquery html5-canvas

我有一个透明的GIF图像,我正在尝试使用HTML5 Canvas复制IE发光滤镜(不要问)。我可以通过使用shadowBlur过滤器在顶部的图像“下面”绘制完全相同的图像来实现。

问题是图像有时必须水平翻转,如果图像被翻转,shadowBlur不会触发(在img标签下仍然不可见,因为它的尺寸完全相同)。

上一个代码:

if (flipped)
  AddFilter('progid:DXImageTransform.Microsoft.BasicImage(mirror=1,rotation=0)');
AddFilter('progid:DXImageTransform.Microsoft.Glow(Color=" + glowColor + ",Strength=" + glowRank + ")"');

HTML5 Canvas代码:

context.shadowBlur = glowRank * 2;  // Canvas not as strong
context.shadowColor = glowColor;

if (flipped) {
  context.translate(img[0].width, 0);
  context.scale(-1, 1);
}

context.drawImage(img[0], img.position().left - 8, img.position().top - 8, img[0].width, img[0].height);

所以,基本上,我们可以翻转图像或阴影,但不是两者。这适用于所有浏览器。有办法做到这两点吗?以某种方式预渲染翻转图像并使用它?

(并且有1000张图像,所以我们不能提前翻转它们。必须在飞行中完成。)

1 个答案:

答案 0 :(得分:0)

我最终做的是为每张图片制作一个小画布,而不是整个游戏区的一张大画布。然后我定位/翻转了小画布。