IPHONE:UIIMageのRGBチャンネルを抽出するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1800993

  •  05-07-2019
  •  | 
  •  

質問

アルファチャネル付きのUIImageがあります。

どのようにUIImageのRGBチャンネルを抽出し、それぞれがアルファを持つ独立したUIImageになりますか?

事前に感謝します。

役に立ちましたか?

解決

これのように。

また、この質問-妄想的な詳細の3番目の回答
ピクセルにアクセスして新しいUIImageに保存するためのコード:

UIImage* image = ...; // An image
NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
void* pixelBytes = [pixelData bytes];

//Leaves only the green pixel, assuming 32-bit RGBA
for(int i = 0; i < [pixelData length]; i += 4) {
        bytes[i] = 0; // red
        bytes[i+1] = bytes[i+1]; // green
        bytes[i+2] = 0; // blue
        bytes[i+3] = 0; // alpha
    }

NSData* newPixelData = [NSData dataWithBytes:pixelBytes length:[pixelData length]];
UIImage* newImage = [UIImage imageWithData:newPixelData];

こちらから適応。 3つの個別のチャネルを別々の画像に含めるには、コードのように、毎回保存するチャネル以外をすべてゼロに設定してから、新しい画像を作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top