私は HTMLcanvas
で遊んでいて、最近、 で画像の不透明度を変更し始めましたcontext.globalAlpha
。画像を自動的にフェードアウトさせる小さなスクリプトを書くのは楽しいだろうと思いました。画像の左側はglobalAlpha
1 (完全に不透明)、右側globalAlpha
は 0 (完全に透明) になります。
ソース画像の 1 ピクセル幅のスライスを取りglobalAlpha
、徐々に減少する数値に設定してみました:
fadeCtx = fadeCanvas.getContext('2d');
for (var i = 0; i < sourceImage.width; i++) {
fadeCtx.globalAlpha = (sourceImage.width - i) / sourceImage.width;
console.log(fadeCtx.globalAlpha);
fadeCtx.drawImage(sourceImage, i, 0, i + 1, sourceImage.height, i, 0, i + 1, sourceImage.height);
}
しかし、これは効果がないようです。画像は所定の位置に描画されますが、全体が完全に不透明です。
不透明度を設定する方法について何か不足していますか? フィドルでわかるように、globalAlpha
イメージ全体の設定に成功しました。「画像スライス」を描画しようとすると、効果がないように見えます。