CIFilter實(shí)現(xiàn)簡(jiǎn)單濾鏡效果

Simulator Screen Shot.png
- (void)setupData {
    // 定義效果
    self.ljNamesArray = @[@"Original",@"CILinearToSRGBToneCurve",@"CIPhotoEffectChrome",@"CIPhotoEffectFade",@"CIPhotoEffectInstant",@"CIPhotoEffectMono",@"CIPhotoEffectProcess",@"CIPhotoEffectTonal",@"CIPhotoEffectTransfer"].mutableCopy;
    self.effectNameArray = @[@"Original",@"Curve",@"Chrome",@"Fade",@"Instant",@"Mono",@"Process",@"Tonal",@"Transfer"].mutableCopy;
    self.originalImage = [UIImage imageNamed:@"200922723503567.jpg"];
    for (int i = 0; i < self.ljNamesArray.count; i++) {
        UIImage *image = [LEAuxiliary changeImage:self.originalImage withIndex:i effectArray:self.ljNamesArray.copy];
        [self.ljImagesArray addObject:image];
    }
    
}

實(shí)現(xiàn)

+ (UIImage *)changeImage:(UIImage *)originalImage withIndex:(int)index effectArray:(NSArray *)effectArray {
    switch (index) {
        case 0:
        {
            return originalImage;
        }
            break;
        default:
        {
            return  [self Image:originalImage withEffect:effectArray[index]];
        }
            break;
    }

}

+ (UIImage *)Image:(UIImage *)image withEffect:(NSString *)effect {
    CIImage *ciImage = [[CIImage alloc] initWithImage:image];
    CIFilter *filter = [CIFilter filterWithName:effect keysAndValues:kCIInputImageKey, ciImage, nil];
    
    [filter setDefaults];
    CIContext *context = [CIContext contextWithOptions:nil];
    CIImage *outputImage = [filter outputImage];
    CGImageRef cgImage = [context createCGImage:outputImage fromRect:[outputImage extent]];
    UIImage *effetImage = [UIImage imageWithCGImage:cgImage];
    
    CGImageRelease(cgImage);
    return effetImage;
}

下方效果點(diǎn)擊切換TableView創(chuàng)建

- (void)sharedInit {
    self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.imageView.frame), 100, SCREEN_WIDTH) style:UITableViewStylePlain];
    self.tableView.center = CGPointMake(self.view.frame.size.width * 0.5, self.view.frame.size.height - 100);
    self.tableView.delegate         = self;
    self.tableView.dataSource       = self;
    self.tableView.showsVerticalScrollIndicator = NO;
    self.tableView.transform        = CGAffineTransformMakeRotation(-M_PI / 2);
    self.tableView.separatorStyle   = UITableViewCellSeparatorStyleNone;
    self.tableView.backgroundView   = nil;
    [self.view addSubview:self.tableView];
}

點(diǎn)擊切換

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  self.imageView.image = [LEAuxiliary changeImage:self.originalImage withIndex:(int)indexPath.row effectArray:self.ljNamesArray.copy];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,241評(píng)論 4 61
  • 概述在iOS開發(fā)中UITableView可以說是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子,類似...
    liudhkk閱讀 9,089評(píng)論 3 38
  • LZ-Says:給大家推薦一個(gè)網(wǎng)站,有興趣可以查閱,想為大家貢獻(xiàn)一點(diǎn)自己的力量也可以投稿,老大審核通過會(huì)發(fā)表,更好...
    靜心Study閱讀 989評(píng)論 0 3
  • 時(shí)間:12月7日 內(nèi)容:第一章 地點(diǎn):寢室 終于進(jìn)入了廣告領(lǐng)域的學(xué)習(xí),這次我選擇的入門書籍是威廉·阿倫斯的當(dāng)代廣告...
    鐵家軍貝貝閱讀 2,211評(píng)論 2 3
  • 這天醒來,我走出去。天空飄起了雪。我伸出手,去觸碰這雪。 純潔的雪花兒落在我的手上變輕、變薄,化成一絲黑色的霧氣,...
    慕獄閱讀 314評(píng)論 0 0