前提・実現したいこと
https://codepen.io/prime156/pen/pebwpO
canvasでこちらのコードの写経をしていたのですが、getImageDataで値を格納したものをdataプロパティで条件分岐させている
処理がわかりません
回答よろしくお願いします
該当のソースコード
javascript
1 stage.compositeOperation = "default"; 2 3 stage.addChild(rect); 4 stage.addChild(text); 5 stage.update(); 6 7 var pixels = ctx.getImageData(text.x, text.y, text.w, text.h); 8 9 stage.removeChild(rect); 10 stage.removeChild(text); 11 stage.update(); 12 stage.compositeOperation = "lighter"; 13 14 var i = 0; 15 var particle; 16 for (var w = 0 ; w < text.w; w += cull){ 17 for (var h = 0; h < text.h; h += cull) { 18 if(pixels.data[(w + text.w * h) * 4] !== 0 && i < particles.length){ 19 particle = particles[i]; 20 particle.x = text.x + w; 21 particle.y = text.y + h; 22 particle.vx = 0; 23 particle.vy = 0; 24 scale = 1 + 4 * Math.random(); 25 particle.scaleX = particle.scaleY = 1 + 2 * Math.random() * Math.random(); 26 i++; 27 } 28 } 29 }
補足情報
createjsを使っています。
###情報追記
カンバス上で書いたテキストをgetImageDataでデータを取得した後にremoveChildで削除してからテキストの幅と
高さがあった位置にfor文で2重で回すことによってテキストの文字部分があった場所にシェィプを追加していることまでは分かるのですが、それだけだと長方形に丸のシェイプが連なって文字にはならないのでおそらく、dataプロパティのif文で文字情報があった位置にだけ丸のシェイプを付与していると思うのですがそのif文で計算している箇所が分かりません
あなたの回答
tips
プレビュー