ホームページ >バックエンド開発 >Golang >RBGA画像をRGBバイト配列に効率的に変換

RBGA画像をRGBバイト配列に効率的に変換

WBOY
WBOY転載
2024-02-05 22:51:121106ブラウズ

RBGA画像をRGBバイト配列に効率的に変換

質問内容

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 サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。