問題タブ [pep3118]

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.

0 投票する
1 に答える
704 参照

python - Python でバイナリ データをファイルからバッファにロードする

640x480 の画像のセットがあります。これらの画像を Matlab を介してバイナリ ファイル形式に変換しています…次に、各バイナリ ファイルを Python のバッファにロードし、そのバッファからデータを読み取る必要があります。誰かが私がそれを行う方法を手伝ったり、リンクを提案したりできますか? -ありがとう。

0 投票する
1 に答える
2021 参照

python - PIL Image は numpy 配列から奇妙な画像を構築します - なぜですか?

赤、緑、または青の小さな RGB 正方形画像を生成する方法が必要です。色の固体ブロックを生成するはずですが、PIL からの画像出力は非常に奇妙です。なんで?

このコードは、次の numpy 配列を返します。

しかし、それが生成して保存する画像はすべて台無しです (3x3 しか想定されていないので、見やすいように拡大しました):

出力画像の拡大コピー

0 投票する
1 に答える
922 参照

python - Python C-API: C 関数から Py_buffer を生成する

Cから任意のPython3関数にデータの大きなバイト配列を渡す方法を理解するのに本当に苦労しています。参考までに、この件に関するいくつかのドキュメント リンクを次に示します。

https://docs.python.org/3.5/extending/embedding.html

ドキュメント内の情報のほとんどは、Python から C にデータを渡すことを想定しているようです。逆のことを行う必要があります。API 関数への参照を見つけましたが、PyBuffer_FromContiguousどこにも文書化されていません (見つけることができます)。関数のプロトタイプは次のとおりです。

基本的に、私は2つの質問があります:

  1. Py_bufferこれはオブジェクトを構築する正しい方法ですか? これは正しいアプローチですか?
  2. Py_bufferが構築されたら、python 関数の呼び出し用の入力タプル/引数に設定できるにどのようにPy_buffer関連付けますか?PyObject

これが私が試みているもののコードサンプルです(data_stypedefを含めるように更新されました):

…これらの問題に関するリードをいただければ幸いです。

0 投票する
0 に答える
405 参照

python-3.x - PEP 3118 バッファ プロトコル フォーマット文字列の解析

バッファ プロトコルを使用して、python、numpy、および cython の間でバイナリ データを渡すことに興味があります。PEP 3118を見ると、名前付きフィールドやネストされた構造体などの便利な機能のサポートを追加する、構造体の文字列構文にいくつかの追加があるようです。

ただし、バッファ構文の全範囲のサポートは、これら 3 つの場所すべてで制限されているようです。たとえば、次の cython 構造体があるとします。

次のように PEP-3118 準拠のバイト文字列を抽出しようとしています

次のエラー メッセージで失敗し Invalid base type for memoryview slice: ImageComp ます。ポインタが含まれている場合、型指定されたメモリ ビューを作成できないためです。

同様に、カスタム文字列または pythonモジュールの関数view.arrayを使用して を作成すると、 のような警告が表示されます。structcalcsizestruct.error: bad char in struct format

herePy_bufferで説明されているように、手動でオブジェクトを作成して埋めることができますが、これをyieldsで numpy 配列に変換しようとしています。np.asarrayValueError: 'T{L:width:L:height:&B:pixels:}' is not a valid PEP 3118 buffer format string

これらすべてを念頭に置いて、次の質問があります。

  1. PEP 3118完全な仕様を利用する標準の python ライブラリにモジュールはありますか?
  2. この構造体形式の構文は、どこかで正式に定義されていますか (つまり、PEG 文法を使用して)?
  3. ポインターが含まれている場合、cython または numpy に有効なフォーマット文字列を自動的に生成させる方法はありますか?