문제

알파 채널이있는 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으로 설정 한 다음 새 이미지를 만듭니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top