3

私は、ExternalInterface呼び出しを介してActionScriptからJavascriptにbytearrayを返しました。今、私はこのbyteaarrayをJavascriptコードの画像に変換する必要があります。plsヘルプ...任意のサンプルコードで...

前もって感謝します...

4

2 に答える 2

4

この問題には 2 つの解決策が考えられますが、どちらもテストしていないので、試してみてください。

HTML5 キャンバス

まず、ActionScript を使用してバイト配列を整数配列に変換します。次の 4 つの値が必要です。

  • 青い
  • アルファ

文字列表現またはプレーンな数値を使用してこれを Javascript に転送し、これらの数値をキャンバスにロードします。

var canvasData = ; // data from actionscript
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var imgData=ctx.createImageData(100,100);
for (var i=0;i<imgData.width*imgData.height*4;i+=4)
{
  imgData.data[i+0]=canvasData[i][0]; // red
  imgData.data[i+1]=canvasData[i][1]; // green
  imgData.data[i+2]=canvasData[i][2]; // blue
  imgData.data[i+3]=canvasData[i][3]; // alpha
}
ctx.putImageData(imgData,10,10);

CSS による Base64 エンコード

HTML5 に依存したくない場合は、ActionScript を使用してバイト配列を base64 文字列に変換し、次の css ルールを使用して画像を挿入します。

background-image: url(data:image/png;base64,__base64_data__);

生成された文字列に置き換え__base64_data__ます。これは、JQuery を使用して動的に行うことができます。

$('#img').css("background-image", "url(data:image/png;base64,__base64_data__)"); 

実際のパフォーマンスは画像サイズに依存しますが、これも HTML5 Canvas よりもはるかに効率的な方法のようです。

于 2012-08-17T08:51:04.147 に答える
0

ここで説明されて いるように、データを に保存し、ArrayBufferこれを に挿入して表示することができます: https://hacks.mozilla.org/2011/12/faster-canvas-pixel-manipulation-with-typed-arrays/canvas

于 2012-08-17T08:40:38.390 に答える