私は、ExternalInterface呼び出しを介してActionScriptからJavascriptにbytearrayを返しました。今、私はこのbyteaarrayをJavascriptコードの画像に変換する必要があります。plsヘルプ...任意のサンプルコードで...
前もって感謝します...
私は、ExternalInterface呼び出しを介してActionScriptからJavascriptにbytearrayを返しました。今、私はこのbyteaarrayをJavascriptコードの画像に変換する必要があります。plsヘルプ...任意のサンプルコードで...
前もって感謝します...
この問題には 2 つの解決策が考えられますが、どちらもテストしていないので、試してみてください。
まず、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);
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 よりもはるかに効率的な方法のようです。
ここで説明されて
いるように、データを に保存し、ArrayBuffer
これを に挿入して表示することができます: https://hacks.mozilla.org/2011/12/faster-canvas-pixel-manipulation-with-typed-arrays/canvas