知è˜(shÃ)
ä¸ç®¡æ˜¯ç¶²(wÇŽng)站,軟件還是å°ç¨‹åºï¼Œéƒ½è¦ç›´æŽ¥æˆ–間接能為您產(chÇŽn)生價(jià )值,我們?cè)è°§éžç¬ƒæ¹Ÿæ›ˆX(jué)表ç¾(xià n)çš„åŒæ™‚(shÃ),更å´(cè)é‡äºŽåŠŸèƒ½çš„ä¾¿æ·ï¼Œç‡Ÿ(yÃng)銷(xiÄo)的便利,é‹(yùn)營(yÃng)的高效,讓網(wÇŽng)ç«™æˆç‚ºç‡Ÿ(yÃng)銷(xiÄo)工具,讓軟件能切實(shÃ)æå‡ä¼æ¥(yè)å…§(nèi)éƒ¨ç®¡ç†æ°´å¹³å’Œæ•ˆçŽ‡ã€‚å„ª(yÅu)秀的程åº?yà n)楹笃è°î¥?jÃ)æä¾›ä¾¿æ·çš„æ”¯æŒï¼
您當(dÄng)å‰ä½ç½®>首é (yè) » æ–°èžè³‡è¨Š » 技術(shù)分享 >
iOSCoreImage/圖片模糊處ç†ï¼ˆä¸€ï¼‰
發(fÄ)表時(shÃ)間:2020-11-5
發(fÄ)布人:葵宇科技
ç€è¦½æ¬¡æ•¸(shù):50
CoreImage 是哪當(dÄng)ツ倒 iOS5.0åˆæ¥å‹žé€²(jìn),其æˆä¸ä¿—å¼·(qiáng)哪當(dÄng)ツ倒出有由驚嘆。
出庸能是掃一篩,é€ä¸–æˆå…©ç¶ç¢¼ï¼Œé€²(jìn)臉辨èª(rèn),圖片緊縮,鹿î²é“處ç†ï¼Œæ‡‰(yÄ«ng)有竟有。
åœ–ç‰‡ç”·î “æ˜¯å“ªç•¶(dÄng)ツ倒6.0åˆæ¥æ”¶æ’,下酪們哪當(dÄng)æˆç‘£å¾©(fù)純的例å看起。
尾先ç´ç´¹ä¸€å€‹(gè)æ±è¥¿ å…‡ CIImage 出有是 UIImage。
CIImage是CoreImageä¸çš„圖片æ±è¥¿ã€‚
常常利用的創(chuà ng)建的圓房嗲
<span style="font-size:14px;">+ (CIImage *)imageWithContentsOfURL:(NSURL *)url; + (CIImage *)imageWithContentsOfURL:(NSURL *)url options:(NSDictionary *)d; + (CIImage *)imageWithData:(NSData *)data; + (CIImage *)imageWithData:(NSData *)data options:(NSDictionary *)d;</span>
我們å¯èƒ½ä¿ 創(chuà ng)建一個(gè)CIImageæ±è¥¿
1. å°¾å…ˆä½ å°Ž(dÇŽo)進(jìn)1.Jpgæ–‡æ“瀾工程爛埽而åŽå‹žé€²(jìn)本錢(qián)ç•¥æ•
<span style="font-size:14px;"> CIImage *beginImage = [CIImage imageWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"1.jpg" withExtension:nil]];</span>2. 創(chuà ng)建一個(gè)CIContext下低文
<span style="font-size:14px;"> CIContext *context = [CIContext contextWithOptions:nil];</span>3. 創(chuà ng)建一個(gè)鹿î²
CIFilter æ˜¯é¹¿î²æ±è¥¿ï¼Œå¿…è¦å‚³é€²(jìn)一個(gè)濾久紂。( 濾久紂有近百種 )。kCIInputImageKey 是摯寵進(jìn)圖åƒçš„é–‰éµ
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur" keysAndValues:kCIInputImageKey,beginImage, nil];
4. ç²å¾—輸出的圖片
<span style="font-size:14px;"> CIImage *outputImage = [filter outputImage];</span>
5. ç¶“(jÄ«ng)éŽ(guò)éŽ(guò)程下低文來(lái)創(chuà ng)建一塊CGImageRef
<span style="font-size:14px;">CGImageRef ref = [context createCGImage:outputImage fromRect:[outputImage extent]];</span>
6. ç²—ref滓∩UIImageæ±è¥¿
<span style="font-size:14px;"> UIImage *newImage = [UIImage imageWithCGImage:ref];</span>
7. é–‹(kÄi)是å˜
<span style="font-size:14px;">CGImageRelease(ref);</span>
如出有雅創(chuà ng)建CIContext 逗媚煌宮會(huì)很消å¯ä½ å˜ã€‚
所以,蓋我倡è°ç²— CIContext\CIFiter æ±å·«é¯”æˆå±¬èŠ¯è©±î»ç”¨ã€‚
多么便å¯èƒ½äº†ã€‚
å‡å®šæˆ‘å€‘å¿…è¦æœ‰ä¸€å€‹(gè)Sliderè¦æ‰‡é«åœ–片擋åŒî “é‡ã€‚
---- 滑動(dòng)竄改圖片的團(tuán)î–度
Slider 竄改Value的時(shÃ)辰來(lái)竄改團(tuán)î–度
<span style="font-size:14px;">[self.slider addTarget:self action:@selector(sliderChangeValue:) forControlEvents:UIControlEventValueChanged];</span>
<span style="font-size:14px;">- (void)sliderChangeValue:(UISlider *)slider{ [self.filter setValue:self.beginImage forKeyPath:kCIInputImageKey]; [self.filter setValue:[NSNumber numberWithFloat:slider.value * 10] forKey:@"inputRadius"]; // ç²é‡ŒéŽ(guò)濾åŽçš„圖片 CIImage *outputImage = [self.filter outputImage]; // 轉(zhuÇŽn)æ›åœ–片 CGImageRef cgimg = [self.context createCGImage:outputImage fromRect:[outputImage extent]]; UIImage *newImg = [UIImage imageWithCGImage:cgimg]; // 隱時(shÃ)慵片 [self.imageV setImage:newImg]; // é–‹(kÄi)釋Cæ±è¥¿ CGImageRelease(cgimg); }</span>
多么便å¯èƒ½äº†ã€‚
相關(guÄn)案例查看更多
相關(guÄn)閱讀
- 云å—å°ç¨‹åºé–‹(kÄi)發(fÄ)推薦
- å‰ç«¯æŠ€è¡“(shù)
- 文山å°ç¨‹åºé–‹(kÄi)發(fÄ)
- ç¶²(wÇŽng)站優(yÅu)化
- ç¶²(wÇŽng)站上首é (yè)
- å°ç¨‹åºé–‹(kÄi)發(fÄ)課程
- 花農(nóng)å°ç¨‹åº
- 電商網(wÇŽng)站建è¨(shè)
- ç¶²(wÇŽng)站建è¨(shè)è²»(fèi)用
- å ±(bà o)廢車(chÄ“)拆解軟件
- 政府網(wÇŽng)站建è¨(shè)æœå‹™(wù)
- 大ç†ç¶²(wÇŽng)站建è¨(shè)å…¬å¸
- å°ç¨‹åºé–‹(kÄi)發(fÄ)
- é–‹(kÄi)通微信å°ç¨‹åºè¢«é¨™
- webé–‹(kÄi)發(fÄ)技術(shù)
- 百度å°ç¨‹åºé–‹(kÄi)發(fÄ)
- ç”Ÿæˆæµ·å ±(bà o)
- 分銷(xiÄo)系統(tÇ’ng)
- webé–‹(kÄi)發(fÄ)
- 云å—å°ç¨‹åºé–‹(kÄi)發(fÄ)å ±(bà o)價(jià )
- 云å—å°ç¨‹åºè¢«é¨™è”£è»
- ç¶²(wÇŽng)絡(luò)å…¬å¸å“ªå®¶å¥½
- 云å—å°ç¨‹åºè¨(shè)計(jì)
- 云å—ç¶²(wÇŽng)站建è¨(shè)外包
- å‰ç«¯é–‹(kÄi)發(fÄ)
- 百度快速排å
- 云å—ç¶²(wÇŽng)站制作
- 云å—ç¶²(wÇŽng)站建è¨(shè)百度
- 云å—ç¶²(wÇŽng)站建è¨(shè)å…¬å¸å“ªå®¶å¥½
- 國(guó)å…§(nèi)知åç¶²(wÇŽng)站建è¨(shè)公叿ޒå