質問
私のように変換するRGBイメージをARGB画像、基本的には"を追及するとともに-255のアルファチャンネル破壊も修復もおもしろくないパック法のことなく繰り返し処理?なのに対して繰り返し処理を実行する私のRGBデータの追加の255各ピクセルになります。
解決
Cさんいる"方法"...ない、これは当てはまりませんの音のようなものがあり日常のための標準図書館があります。と思うのに必要なコードで自分のかかるようになります:
void setAlpha(unsigned char *rgba, int width, int height, int alpha)
{
int x, y;
for(y = 0; y < height; y++)
{
for(x = 0; x < width; x++, rgba += 4)
{
rgba[3] = (unsigned char) alpha;
}
}
}
基本的な前提条件
- 梱包はRGBAメモリ、のオフセットは3つのアルファのバイト開始からのピクセルになります。
- 画像が格納され、左上のピクセルの初期のアドレスに、右から左、上から下への順です。
- ありませんのパディングも
も順ループ;こすると非常に大きな差にな実績によるキャッシュ.このコードに触れるピクセルありメモリの順で、良いという"良い土地".
を変更するポインタをポイントは次のピクセルではなく記載のアドレスrgba[4 * y * width + 4 * x + 3]
も最適化、(私も簡単に行えます。
所属していません StackOverflow