本文講述關(guān)于UIImage的一系列操作。
首先,來強(qiáng)調(diào)一個知識點:
對于UIImage的旋轉(zhuǎn)、剪切等操作,并非是對其進(jìn)行動畫操作,因為動畫本身的執(zhí)行是針對存放UIImage的那個View來進(jìn)行的,也就是說如果你通過動畫來進(jìn)行裁剪、旋轉(zhuǎn)、變形等操作,他并沒有對原有的圖片本身有任何實質(zhì)性的改變。事實上,對于UIImage的這些任意處理,我們是通過獲取它的圖形上下文Context來進(jìn)行操作的。
接下來我們具體看看如何進(jìn)行圖片的任意處理:
- 圖片的任意角度旋轉(zhuǎn)
實現(xiàn)思路:首先將需要處理的圖片渲染到她的context上,然后對得到的這個context進(jìn)行我們需要的旋轉(zhuǎn)處理,最后再將旋轉(zhuǎn)過的context轉(zhuǎn)化為UIImage的類型。
具體的操作步驟如下圖所示:

創(chuàng)建旋轉(zhuǎn)分類、實現(xiàn)旋轉(zhuǎn)處理
在我們的VC中就只需要引入頭文件進(jìn)行方法調(diào)用即可:

旋轉(zhuǎn)方法的調(diào)用
- 圖片的任意位置剪切
實現(xiàn)思路:首先獲取自己需要處理的圖片,然后對他的圖形上下文進(jìn)行剪切繪制處理,最后將處理后的內(nèi)容轉(zhuǎn)化為圖片形式。
具體的操作步驟如下圖所示:

創(chuàng)建剪切分類、實現(xiàn)剪切處理
在我們的VC中就只需要引入頭文件進(jìn)行方法調(diào)用即可:

剪切方法的調(diào)用
- 圖片的任意拉伸
實現(xiàn)思路:首先獲取自己需要處理的圖片,然后對他的圖形上下文進(jìn)行拉伸處理,最后將處理后的內(nèi)容轉(zhuǎn)化為圖片形式。
具體的操作步驟如下圖所示:

創(chuàng)建拉伸分類、實現(xiàn)拉伸處理

拉伸方法的調(diào)用
以上就是通過創(chuàng)建分類,處理圖形上下文來實現(xiàn)圖片的任意旋轉(zhuǎn)、剪切以及拉伸操作的方法。其實通過上述方法,我們可以看出對于圖片的這些處理,其根本就在于對圖形上下文ImageContext的一系列處理以及他和圖片本身的轉(zhuǎn)化。
另外、兩個小建議:(1)大家在處理圖片的時候盡量去使用同一張圖片對其進(jìn)行不同的操作,這樣可以更直觀的看出來到底有怎樣不同的效果。(2)關(guān)于圖形上下文這一方面的內(nèi)容在平時的一般開發(fā)中并不常用,知識點上可能會覺得有好多之前未曾接觸過的內(nèi)容,這就需要大家多去搜索和、學(xué)習(xí)和積累了。
希望我的文章能對大家有所幫助。
我是姣爺、我在簡書、和你們一起、加油!