成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

圖片變形的抗鋸齒處理方法

移動開發(fā)
想起了很久以前也遇到過類似抗鋸齒的問題,那時候要做一個類貼紙的應用,理所當然會遇到貼紙縮放和旋轉(zhuǎn)的問題。所以鋸齒的問題也是需要解決的。但是那時候是iOS4,5的時代,壓根沒有上面說的allowsEdgeAntialiasing這個東西(這個東西iOS7才公開,不過iOS6據(jù)說也可以用,但是黑科技嘛..你懂的)

[[148963]]

前言

周末在微博上看到@周楷雯Kevin說起CALayer抗鋸齒的問題

1441074320385070.png

具體做法是:


  1. layer.allowsEdgeAntialiasing = true 

想起了很久以前也遇到過類似的問題 那時候要做一個類貼紙的應用 理所當然會遇到貼紙縮放和旋轉(zhuǎn)的問題 所以鋸齒的問題也是需要解決的 但是那時候是iOS4,5的時代 壓根沒有上面說的allowsEdgeAntialiasing這個東西(這個東西iOS7才公開 不過iOS6據(jù)說也可以用 但是黑科技嘛..你懂的)

所以當時求助了***的stackoverflow 得到了一個非常簡約而不簡單的方法 就是我在微博上說的 只要把需要顯示的圖片留一個像素的透明邊 就搞定了

方法

方法比較簡單 我寫成了一個UIImage的Category方法 然后一直塵封在我的工具庫中好幾年(遇到這個問題我才想起來)


  1. - (UIImage *)antiAlias 
  2.     CGFloat border = 1.0f; 
  3.     CGRect rect = CGRectMake(border, border, self.size.width-2*border, self.size.height-2*border); 
  4.     UIImage *img = nil; 
  5.      
  6.     UIGraphicsBeginImageContext(CGSizeMake(rect.size.width,rect.size.height)); 
  7.     [self drawInRect:CGRectMake(-1, -1, self.size.width, self.size.height)]; 
  8.     img = UIGraphicsGetImageFromCurrentImageContext(); 
  9.     UIGraphicsEndImageContext(); 
  10.      
  11.     UIGraphicsBeginImageContext(self.size); 
  12.     [img drawInRect:rect]; 
  13.     UIImage* antiImage = UIGraphicsGetImageFromCurrentImageContext(); 
  14.     UIGraphicsEndImageContext(); 
  15.      
  16.     return antiImage; 

先來看看實際的效果

2.jpg

可以看到旋轉(zhuǎn)的時候若不做任何處理 確實是會有明顯的鋸齒 而使用透明邊的方法 或者設置allowsEdgeAntialiasing 都可以消除鋸齒

接下來看看這兩種方法的性能比較 測試方法是在我的iPhone 5S上接連對500個UIImageView進行旋轉(zhuǎn) 對比幀數(shù) 其結(jié)果如下

3.jpg

結(jié)果表明 allowsEdgeAntialiasing的性能還是比透明邊的方式要差一點 所以…

  • 如果你的應用要支持iOS6- 可以參考透明邊的方法 唯一的缺點是顯示出來會比原來小那么一點點(我的做法是直接cut掉1px的邊 當然你也可以直接在圖像外面加1px的透明邊)

  • 如果你的應用僅支持iOS7 推薦使用allowsEdgeAntialiasing來設置 簡單方便咯 如果性能上覺得吃力的話 可以再考慮透明邊的方法

小結(jié)

文中的demo可以在這里找到

測試的方法也許不太嚴謹(也是臨時起意寫的這篇 所以并沒有花太多時間) 如果有錯誤 請大家提出來

責任編輯:倪明 來源: 里脊串的開發(fā)隨筆
相關(guān)推薦

2012-01-11 09:39:50

Java

2018-08-06 16:31:36

NVIDIA光線抗鋸齒

2009-06-04 15:52:25

Netbeans6.5字體無法抗鋸齒Ubuntu9.04

2009-06-10 17:11:01

linux netbe反鋸齒處理

2021-08-07 07:59:20

Windows 11操作系統(tǒng)微軟

2018-10-18 14:28:33

2011-08-09 15:20:38

2009-07-28 16:07:40

.NET圖片快速處理

2011-02-21 16:11:45

C#.NET.NET framew

2011-09-19 10:12:32

UbuntuPhotivo

2023-10-27 08:34:46

PythonJava優(yōu)勢

2011-03-16 11:22:16

iconDefaultiPhone

2010-07-26 15:12:20

坐標變換

2011-05-06 09:19:48

筆記本花屏黑屏

2018-09-21 15:15:33

NVIDIA顯卡深度學習

2010-03-09 19:19:40

Python圖像處理

2018-09-07 14:32:17

NVIDIARTX 20DLSS

2011-07-25 16:41:16

Sencha Touc

2022-07-12 09:00:00

深度學習人工智能機器人

2020-04-07 00:10:16

javascrip語言異步
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 精品国产色 | 成人免费看电影 | 一区二区三区四区不卡视频 | 视频一区 亚洲 | h视频在线免费观看 | 视频1区 | 天天操天天射天天 | 国产999精品久久久 午夜天堂精品久久久久 | 精品国产乱码久久久久久丨区2区 | 九色视频网站 | 久久999 | 精品国产青草久久久久96 | 在线免费观看黄a | 精品国产乱码一区二区三区a | 欧美精| 中文字幕成人 | 亚洲视频在线一区 | 色呦呦网站 | 福利网站在线观看 | 亚洲人成在线播放 | 久久国产精彩视频 | 91麻豆精品国产91久久久久久 | 国产精品国产精品国产专区不蜜 | 日韩精品一区二区三区在线播放 | jlzzjlzz国产精品久久 | 在线不卡一区 | 日韩三级一区 | 日本三级电影免费观看 | 国内毛片毛片毛片毛片 | 美女久久视频 | 国产亚洲一区二区精品 | 欧美一级一区 | 免费在线观看成人av | 国产精品爱久久久久久久 | 亚洲午夜av久久乱码 | 日韩综合一区 | 亚洲一区在线观看视频 | 免费在线观看一区二区 | 欧美精品一区二区三区蜜桃视频 | 超碰最新在线 | 国产一级特黄aaa大片评分 |