2011-02-10 68 views
1

我需要修剪CGImage。我有一個圖像,其中有一些顏色空的空間(alpha = 0),需要修剪它以獲得僅可見顏色的大小。CGImage的修剪alpha

謝謝。

回答

0

有這樣的三種方式:

1)用Photoshop(或選擇的圖像編輯器)編輯的圖像 - 我認爲你不能做到這一點,這是太明顯了一個答案!

2)忽略它 - 爲什麼不只是忽略它,畫出它的全尺寸圖像?它是透明的,所以用戶永遠不會注意到。

3)寫一些代碼,通過圖像中的每個像素,直到它達到一個alpha值> 0。這應該會給你從頂部修剪的行數。但是,這會減慢你的UI,所以你可能想在後臺線程上做。

例如

// To get the number of transparent rows at the top of the image 
// Sorry this code is so ugly 
uint32 *p = start_of_image; 
while (0 == *p & 0x000000ff && p < end_of_image_data) ++p; 
uint number_of_white_rows_at_top = (p - start_of_image)/width_of_image; 

當您從圖像周圍所知道的透明空間量,你可以使用一個UIImageView繪製,設置中將renderMode居中,讓它做修剪你:)

+0

我需要使它動態的,我需要的大小(不是確切的,但我需要它),所以1和2不起作用。我嘗試了一種類似於#3的方法,但速度太慢了:/請嘗試您建議的確切方式。我希望有一些方法可以帶來一些面具魔法。 – 2011-02-10 15:52:40