★Canvasリファレンス

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

context . globalCompositeOperation = “合成方法 …… 図形やイメージの合成方法を指定する

Firefox3Firefox4
Google Chrome1Google Chrome2Google Chrome3Google Chrome4Google Chrome5Google Chrome6
Safari3Safari4Safari5
Opera10
広告



globalCompositeOperation属性は、図形やイメージの合成方法を指定する際に使用します。

以下のサンプルは、青い四角形を描いたあとに、一部領域が重なるように赤い四角形を描いたものです。
通常は一番最後の「指定なし」のように表示されますが、
globalCompositeOperation属性を使用することで、様々な合成方法を指定し分けることができます。

初期値は source-over です。
すべての値は大文字と小文字が厳密に区別されます。

source-atop

source-in

source-out

source-over (初期値)

destination-atop

destination-in

destination-out

destination-over

lighter

copy

xor

指定なし

指定できる値は上記の通りで、これら以外の値を指定しても原則として無視されます。
ただし、ブラウザベンダーによって拡張機能が追加されることがあるかもしれません。
その場合のキーワードの書式は「ベンダー名-機能名」となると定義されています。

現在のところ、FirefoxとGoogle Chrome・Safariでは、一部キーワードの解釈が異なるようです。
また、IE9はglobalCompositeOperation属性をサポートしていないようです。

■引数(値)の説明

source-atop
現在イメージの領域のみが描画される。重なった部分は新規イメージとなる。
source-in
重なった領域のみが描画される。重なった部分は新規イメージとなる。
source-out
新規イメージの領域のみが描画される。重なった部分は描画されない。
source-over
両方のイメージの領域が描画される。重なった部分は新規イメージとなる。(初期値)
destination-atop
新規イメージの領域のみが描画される。重なった部分は現在イメージとなる。
destination-in
重なった領域のみが描画される。重なった部分は現在イメージとなる。
destination-out
現在イメージの領域のみが描画される。重なった部分は描画されない。
destination-over
両方のイメージの領域が描画される。重なった部分は現在イメージとなる。
lighter
両方のイメージの領域が描画される。重なった部分は混色して描画される。
copy
新規イメージの領域のみが描画される。重なった部分は新規イメージとなる。
xor
両方のイメージの領域が描画される。重なった部分は描画されない。
ブラウザベンダーによる拡張
ブラウザベンダーによって拡張機能が追加される場合、キーワードの書式は「ベンダー名-機能名」となる。

■使用例

HTML + JavaScriptソース

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test() {
  //描画コンテキストの取得
  var canvas = document.getElementById('sample');
  if (canvas.getContext) {
    var context = canvas.getContext('2d');
    //ここに具体的な描画内容を指定する

    //■■■ destination-overの場合 ■■■
    //青い四角形を描く
    context.fillStyle = "rgb(0, 0, 255)";
    context.fillRect(20,20,50,50);
    //合成の形式を指定する
    context.globalCompositeOperation = "destination-over";
    //赤い四角形を描く
    context.fillStyle = "rgb(255, 0, 0)";
    context.fillRect(40,40,50,50);

    //いったん初期値に戻す
    context.globalCompositeOperation = "source-over";

    //■■■ lighterの場合 ■■■
    //青い四角形を描く
    context.fillStyle = "rgb(0, 0, 255)";
    context.fillRect(120,20,50,50);
    //合成の形式を指定する
    context.globalCompositeOperation = "lighter";
    //赤い四角形を描く
    context.fillStyle = "rgb(255, 0, 0)";
    context.fillRect(140,40,50,50);
  }
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>
↓↓↓

ブラウザ上の表示

Canvasで図形を描く


図形を表示するには、canvasタグをサポートしたブラウザが必要です。

■関連項目

<canvas> …… 図形を描くHTML5から追加
広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
51 users signed up
もっと表示する