1. 程式人生 > >關於圖片拉伸的幾種方法總結

關於圖片拉伸的幾種方法總結

系統至ios6之後,關於圖片拉伸的方法已經擴充套件至3個函式:

1.ios4提供的方法:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

這個函式是UIImage的一個例項函式,它的功能是建立一個內容可拉伸,而邊角不拉伸的圖片,需要兩個引數,第一個是不拉伸區域距離左邊框的寬度,第二個引數是不拉伸區域距離上邊框的寬度,其操作本質是對一個畫素的複製拉伸,故沒有漸變效果,這也是其缺點所在。
引數的意義是,如果引數指定10,5。那麼,圖片左邊10個點,上邊5個點。不會被拉伸,x座標為11的點會被橫向複製,y座標為6的點會被縱向複製。注意:只是對一個點畫素進行復制到指定的寬度。


2.ios5提供的方法

- (UIImage *)resizableImageCapInsets:(UIEdgeInsets)Insets

其中Insets這個引數的格式是(top,left,bottom,right),從上、左、下、右分別在圖片上畫了一道線,這樣就給一個圖片指定了一個矩形區域。只有在框裡面的部分才會被拉伸,而框外面的部分則保持不變。比如(20,5,10,5),意思是下圖矩形裡面的部分可以被拉伸,而其餘部分不變。

3.ios6提供的方法:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets

 resizingMode:(UIImageResizingMode)resizingMode

關於Insets引數,與ios5是相同的,不同的是其後增加了一個拉伸的模式,ios6.0的版本提供了

UIImageResizingModeTile和

UIImageResizingModeStretch兩種模式,從名字就可以看出,是平鋪模式和拉伸模式。平鋪就是複製你Insets指定的矩形區域塊來填充你所指定的圖片區域,而拉伸就是通過拉伸你Insets指定的矩形區域塊來填充你

所需的圖片區域。我想,相較4.0的進步你也看出來了,是明顯的吧,相較於以前的,圖片的resize由一個點變成了一個矩形塊,這樣你的所指定塊的漸變效果,也是可以呈現出來的。

只是,如果你需要相容4.0的機器的話,那麼還是需用老的函式來完成對圖片的resize操作的。

相關推薦

關於圖片方法總結

系統至ios6之後,關於圖片拉伸的方法已經擴充套件至3個函式: 1.ios4提供的方法: - (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInt

生成下框的方法總結——數據來源:枚舉

ati state 數據集 equal type() tty each 其中 sele 上節介紹數據來源是數據庫,這節介紹對枚舉進行數據獲取,形成下拉列表。 使用場景:某些狀態值獲取等,一般是數據量小,不需要在數據庫中進行維護的數據集 1、前提要有枚舉數據

Qt常見設定背景圖片方法總結

     常用的設定背景的方式有三種: 1、利用style sheet給窗體設定背景。 2、利用Qt UI設計器的改變樣式表進行設定。如下: 3、通過如下程式碼來實現。 QPixmap pixmap

JS刷新當前頁面的方法總結

onu navigate mman reload 存在 .exe time 通過 復制代碼 reload 方法,該方法強迫瀏覽器刷新當前頁面。語法:location.reload([bForceGet])

laravel安裝的方法總結

php laravel 安裝 Laravel安裝方法大的來分可以分為利用Composer安裝和一鍵安裝包安裝。先來說一下最簡單的安裝方式,利用一鍵安裝包來安裝Laravel。為了方便初學者學習Laravel有大神在網上提供了一鍵安裝包(下載網址:http://www.golaravel.com/d

優化MySQL性能的方法-總結

big 計算 保持 失敗 優化mysql sql one div 另一個 原文:http://bbs.landingbj.com/t-0-245601-1.html 1、要選取最適用的字段屬性 MySQL可以很好的支持大數據量的存取,但是一般說來,數據庫中的表越

js 刪除陣列中某一項的方法總結

第一種:改變原陣列 借用原生陣列方法:splice(index,len,[item])  剪接 借用原生物件方法:delete array[index] + array.slice(0, index).concat(array.slice(index, array.length-1))

防止表單重複提交的方法總結

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Warpar/article/details/72917924 1、JavaScript防止表單重複提交(主要用於網路延遲情況下使用者點選多次submit按鈕導致表單重複提

C++中函式返回陣列指標的方法總結

因為陣列不能被拷貝,所以函式不能返回陣列。不過,函式可以返回陣列的指標或引用。返回陣列指標的方法有以下幾種:     1、方法一:使用類型別名。如下         typedef int arrt[10];//arrT是一個類型別名,它表示的型別是含有10個整數的陣列   

資料庫sql優化的方法總結

在sql查詢中為了提高查詢效率,我們常常會採取一些措施對查詢語句進行sql優化,下面總結的一些方法,有需要的可以參考參考。 1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 wher

[組合數]求組合數的方法總結

求C(n,m)%mod的方法總結 1.當n,m都很小的時候可以利用楊輝三角直接求。 C(n,m)=C(n-1,m)+C(n-1,m-1); 2.利用乘法逆元。 乘法逆元:(a/b)%mod=a*(b^(mod-2)) mod為素數。 逆元可以利用擴

微信小程式 傳值取值的方法總結,百分百會用到

微信小程式 傳值取值 小程式裡常見的取值有以下幾種,一個完整的專案寫下來,用到的概率幾乎是100%。 列表index下標取值 頁面傳值 form表單取值 列表index下標取值 實現方式是:data-index=”{{index}}”挖坑及e.cu

Java中遍歷Map的方法總結

方法一 在for-each迴圈中使用entries來遍歷 這是最常見的並且在大多數情況下也是最可取的遍歷方式。在鍵值都需要時使用。 Map<Integer, Integer> map = new HashMap<Integer, Integer>

Servlet跳轉頁面的方法總結

servlet跳轉頁面的方法: 跳轉分為兩部分,一部分發生在servlet,另一部分發生在JSP,JSP就是servlet,但是兩者還是有部分差異。 Servlet:(跳轉發生在doGet,doPost等方法裡) (1)redirect方式

DoubleCheck的方法總結

第一種:非延遲載入單例類 public class Singleton { private Singleton() {} private static final Singleton instance = new Singleton(); public s

Linux執行緒同步機制的方法總結與對比

執行緒同步機制的幾種方法總結與對比 需要執行緒同步的原因: 當有多個執行緒同時訪問一個共享記憶體裡面的變數時,有時會出現一個執行緒正在修改該變數的值,而其他的執行緒正在讀取資料,可能就會導致錯誤。

python獲取命令列引數的方法總結

第一種是利用sys.argv模組 import sys print sys.argv 輸出整個命令列,以list的格式,所以有時候可以通過判斷這個list的長度來判斷是否有引數值輸入。 print sys.argv[0] print sys.argv[1] prin

php頁面傳遞引數值方法總結

又搞了一個學期的php,就這樣吧。      php是一種伺服器的指令碼語言,他也是現在最為流行的WEB開發語言,下面我們來講述一下幾種上在php開發應用中常用的四種頁面之間傳遞引數的幾種方法。    第一種:使用客戶端瀏覽器的cookie。cookie很容易理解,就是一個臨時檔案,可以把它看成一個儲藏室,瀏

Android截圖截圖的方法總結

Android截圖   Android截圖的原理:獲取具體需要截圖的區域的Bitmap,然後繪製在畫布上,儲存為圖片後進行分享或者其它用途 一、Activity截圖 1、截Activity介面(包含空白的狀態列) ? 1 2 3 4

python寫入csv檔案的方法總結

最常用的一種方法,利用pandas包import pandas as pd #任意的多組列表 a = [1,2,3] b = [4,5,6] #字典中的key值即為csv中列名 dataframe = pd.DataFrame({'a_name':a,'b_nam