iPhone : Uiimage의 RGB 채널을 어떻게 추출합니까?
-
05-07-2019 - |
문제
알파 채널이있는 UIIMAGE가 있습니다.
알파와 독립적 인 UIIMAGE로서 UIIMAGE의 RGB 채널을 추출하려면 어떻게합니까?
미리 감사드립니다.
해결책
처럼 이것.
또한 살펴보십시오 이 질문 - 편집증 세부 사항의 세 번째 답변
그리고 픽셀에 액세스하고 새로운 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 개의 별개의 채널을 사용하려면 코드에서 좋아하고 매번 저장하려는 채널을 제외하고는 모두 0으로 설정 한 다음 새 이미지를 만듭니다.
제휴하지 않습니다 StackOverflow