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

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

WBOY
リリース: 2024-02-05 22:51:12
転載
1107 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート