RGB形式の24ビットビットマップを含むバイト配列へのポインタを必要とするCライブラリと関数があります。アルファ チャネルは重要ではないため、切り詰めることができます。私は次のようなことを試しました:
リーリーただし、nrgba も 1 ピクセルあたり 4 バイトで構築されているようです。この問題は gocv を使用することで解決できますが、このような単純なタスクにはやりすぎのように思えます。 Goでこれを簡単かつ効率的に行う方法はありますか?
標準ライブラリにはrgb画像タイプはありませんが、非常に簡単にrgb配列を組み立てることができます:
リーリーimg.pix
データは 4 バイトの rgba 値を保持します。上記のコードは、すべてのピクセルの最初の 3 バイトの rgb 値をコピーするだけです。
pix
配列内の行は連続しているため、行ごとに pixoffset
を 1 回だけ呼び出し、各ピクセルを 4 バイト進めることで、上記のコードを改善できます。また、3 バイトを手動でコピーする方が、copy()
(それが重要な場合はベースライン) を呼び出すよりも高速になる可能性があります。
リーリー
以上がRBGA画像をRGBバイト配列に効率的に変換の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。