問題タブ [arraybuffer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 各バイトの先行ビットが無視されるときに、バイトのセットから数値を生成する簡単な方法はありますか?
Google ChromeのJavaScriptを使用して一連のバイトから、ArrayBufferから数値を生成して、MP3タグ情報を取得しようとしています。ID3v2仕様では、タグサイズを取得するには、特定の場所で4バイトを取得し、それらから整数値を取得する必要があると規定されています。ただし、次の場合を除きます。
ID3v2タグサイズは4バイトでエンコードされ、最上位ビット(ビット7)はすべてのバイトでゼロに設定され、合計28ビットになります。ゼロにされたビットは無視されるため、257バイトの長さのタグは$ 00 000201として表されます。
これを行うための素朴な方法は、各バイトを調べて各ビットの値を取得し、元の4バイトの7ビットから生成された新しい4バイトの値を生成することです。たとえば、これらの4つの元のバイトがあります。 :
新しいArrayBufferを作成し、各ビットをループして以下を生成します。
次に、 Uint32Arrayを使用してこの32ビット整数から整数値を計算します
これを行う簡単な方法はありますか?
scala - Scala の有限グローアブル配列
配列のような構造を最大サイズまで拡大できるようにしたいと考えています。その後、新しい要素が追加されるたびに、最も古い (1 番目の) 要素が構造から削除されます。これを行う最善の方法はわかりませんが、1 つの方法は ArrayBuffer クラスを拡張し、+= 演算子をオーバーライドして、最大サイズに達した場合に新しい要素が毎回削除されるようにすることです。 1 つ追加されます。コレクションを適切に拡張する方法がまだわかりません。私がこれまでに持っているものは次のとおりです。
誰かがより良い道を提案したり、これに沿って私を助けたりできますか? 注: += 操作の合間に、構造内の要素に何度も任意にアクセスする必要があります。
ありがとう
scala - scala ArrayBufferは、述語を持つすべての要素を削除します
Scalaは、不変シーケンスのフィルタリングにおいて非常に洗練されています。
しかし、ArrayBufferのような可変コレクションでこれを行うにはどうすればよいですか?私が見つけたのは、単一の要素またはスライスを削除するか、別のシーケンスから要素を削除することだけですが、述語によって指定された要素を削除するものは何もありません。
編集:私はこれに似たものを見つけることを望んでいました:
これは線形時間でフィルタリングされ、任意のバッファに混在させることができますが、意味があるのはArrayBufferだけです。リストバッファでは、インデックス作成に線形時間がかかるため、処理が遅くなります。
jquery - JQuery.getからダウンロードしたデータをArrayBufferに変換するにはどうすればよいですか?
私は過去3日間、私が知っているさまざまなキーワードを使ってこれに対する答えを見つけようとしましたが、遠くまで行くことができませんでした。私はJavaScript/WebGLを初めて使用するので、これは私の側では完全に無知である可能性があります。その場合はご容赦ください。
これは、サーバーからバイナリファイル(カスタムイメージファイル形式)をダウンロードし、ダウンロードしたデータから最初の4バイト(Int32)を読み取るために行うことです。
ダウンロードされたデータ「imageData」はサーバー上のファイルとして正しいサイズ(imageData.length)であるため、ダウンロードは成功したと思います。
ダウンロードしたファイルを読み込んで、ヘッダー情報を抽出します(WebGL Texture2Dの残りの画像データを表示に使用します)。したがって、問題は次のとおりです。ダウンロードされたカスタム画像(WebGLでテクスチャとして使用するため)を処理する方法はありますか?そうでない場合、あなたの推奨事項は何でしょうか?
javascript - 文字列と ArrayBuffer 間の変換
JavaScript 文字列をArrayBuffersに、またはその逆に効率的に変換するための一般的に受け入れられている手法はありますか? localStorage
具体的には、ArrayBuffer の内容を書き込んで読み戻せるようにしたいと考えています。
scala - SeqをArrayBufferに変換する
ScalaでにSeq
変換する簡潔な方法はありますか?ArrayBuffer
javascript - ArrayBufferView コンストラクターの奇妙な制限
TypedArray 仕様では、ArrayBufferView は次の方法で作成できると規定されています。
ただし、2 番目のパラメーター にbyteOffset
は制限があります。
指定された byteOffset は、特定の型の要素サイズの倍数である必要があります。そうでない場合、例外が発生します。
これは、次のような 2 バイト ビューの奇数オフセットを扱うことができないことを意味します。
したがって、[1,2] を Uint16 に正しく変換できたとしても、その方法でそれらの要素にアクセスすることはできません。byteOffset の制限により、ArrayBufferView
の柔軟性が大幅に低下するようです。
この制限が課された理由を知っている人はいますか?
google-chrome - ブラウザからバイナリデータを送信する
クライアントからサーバーにバイナリ形式でデータを送信するために何をしなければならないか知りたいですか?
Chrome 14 を使用してArrayBuffer
おり、クライアント アプリケーションでを送信すると、サーバー アプリケーションで にopcode
設定されたフレームとopText
文字列をフレーム データとして受け取ります。
私は何をすべきか?
xmlhttprequest - ArrayBuffer vs Blob および XHR2
ArrayBuffer、Blob、File、および FormData オブジェクトを転送する機能。
- ArrayBufferとBlobの違いは何ですか?
- XHR2 経由で送信できることを気にする必要があるのはなぜですか? (File と FormData の価値は理解できる)
javascript - Javascript型付き配列とエンディアン
WebGLを使用して、バイナリエンコードされたメッシュファイルをレンダリングしています。バイナリファイルはビッグエンディアン形式で書き出されます(これは、ファイルを16進エディターで開くか、フィドラーを使用してネットワークトラフィックを表示することで確認できます)。Float32ArrayまたはInt32Arrayを使用してバイナリ応答を読み取ろうとすると、バイナリはリトルエンディアンとして解釈され、値が間違っています。
型付き配列のデフォルトのエンディアンへの参照がhttp://www.khronos.org/registry/typedarray/specs/latest/に見つからないので、何が問題なのか疑問に思います。型付き配列を使用して読み取る場合、すべてのバイナリデータはリトルエンディアンであると想定する必要がありますか?
この問題を回避するには、DataViewオブジェクト(前のリンクで説明)を使用して、次のコマンドを呼び出します。
「getInt32」などのDataView関数は、デフォルトでビッグエンディアン値を読み取ります。
(注:Google Chrome15とFirefox8を使用してテストしましたが、どちらも同じように動作します)