2015-07-02 3 views
3

Я хочу преобразовать изображение в чистый черный & белый. Я попробовал и получил результат, который является прикрепленным левым изображением, и результат должен быть правильным изображением, которое я приложил в соответствии с требованиями приложения.Получите черно-белое изображение от UIImage в iPhone SDK?

Я использовал много CIFilter как (CIColorMonochrome, CIColorControls, CIPhotoEffectTonal и т.д.), но ничего из этого не работает.

Пожалуйста, проверьте код и приложите результат.

- (UIImage *)imageBlackAndWhite 
{ 
    CIImage *beginImage = [CIImage imageWithData: UIImageJPEGRepresentation(self.captureImage.image, .1)]; 

    //CIImage *beginImage = [CIImage imageWithCGImage:self.CGImage]; 

    CIImage *output = [CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:kCIInputImageKey, beginImage, @"inputIntensity", [NSNumber numberWithFloat:1.0], @"inputColor", [[CIColor alloc] initWithColor:[UIColor whiteColor]], nil].outputImage; 

    CIContext *context = [CIContext contextWithOptions:nil]; 
    CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent]; 
    UIImage *newImage = [UIImage imageWithCGImage:cgiimage]; 

    CGImageRelease(cgiimage); 

    return newImage; 
} 

Мой результат ----------------------------------------- ----- Ожидаемый результат enter image description here

+0

Пожалуйста, обратите внимание на http://stackoverflow.com/questions/22972441/convert-image-to- black-and-white-ios – aobs

+0

Одиночный фильтр MonoChrome не работает, нужный результат можно достичь, добавив в изображение «Яркость» или «Световой». Попробуйте добавить еще пару фильтров, как я сказал выше, вы получите результат. Приветствия. – iphonic

+0

благодарит @iphonic за его работы, но не ожидаемый результат. – vijay

ответ

0

Вы можете использовать BlendMode: kCGBlendModeLuminosity с альфа-значение: 1,0