1
좀 알파 도면 내 UIImage
를 마스크 등의 솔루션을 사용하고 있습니다 : masking an UIImageCIFilter +있는 UIImage + 알파 마스크
문제는 나중에 내가 어떤 CIFilters
을 적용 할 것입니다. 그러나 필터의 값을 변경하면 내 알파가 UIImage
에서 손실됩니다. CIFilter 수정 후 매번 출력 이미지에 알파 채널을 다시 적용해야합니까? 이것은 분명히 프로세스를 훨씬 느리게 만들 것입니다. 코드의
샘플 (각 새 단락이 다른 방법에)
// set the image
_image = [incomeImage imageWithMask:_mask]; // imageWithMask from method from link
[_myView.imageView setImage:_image];
// calculate ciimages
_inputCIImage = [[CIImage alloc] initWithCGImage:_image.CGImage options:nil];
_myView.imageView.image = _image;
_currentCIImage = _inputCIImage;
// change value in filter
[filter setValue:@(0.2f) forKey:@"someKey"];
[filter setValue:_inputCIImage forKey:kCIInputImageKey];
_currentCIImage = [filter outputImage];
CGImageRef img = [_context createCGImage:_currentCIImage fromRect:[_currentCIImage extent]];
UIImage *newImage = [UIImage imageWithCGImage:img];
기술적으로 분실해서는 안됩니다. 코드를 보여 주시겠습니까? – geekchic
@ Nikhita 코드의 가장 중요한 부분을 추가했습니다. – Vive
CIFilter를 사용해야 만이 작업을 수행 할 수 있습니다. imageWithMask를 사용하는 대신에'CIBlendWithMask' CIFilter를 사용할 수 있습니다. –