簡體   English   中英

如何將UIImage的隨機像素的不透明度設置為0?

[英]How to set the opacity of random pixels to 0 of a UIImage?

我正在開發一個iPhone應用程序,該應用程序需要具有一些操作后才能顯示圖像的功能。

例如:

我彼此之間有2個UIImages。 背面的UIImage是要顯示的圖像。 頂部的UIImage需要覆蓋此圖像。 我需要一種可以告訴我揭示圖像的方法。 因此,如果我調用該方法,並且假設我將參數50(代表50%)給定,則需要將頂部UIImage的一半像素設置為不透明度0。我知道我必須將圖像讀入數據,然后我可以編輯像素。 但是我需要編輯隨機像素,否則,如果我用50調用該方法,則圖像的頂部已經可見。 所以我需要將像素的不透明度設置為0,但是是隨機的。 這會給您一種“雪”的效果,例如,當我調用該方法並將100作為參數時,這意味着100%的像素必須獲得0的不透明度,因此完整的圖片是可見的。

隨機很重要,因為使用隨機,這會緩慢地顯示圖像,而不是顯示圖像的一半,因為樂趣已經結束了;-)

使其變得容易:用於編輯像素的圖像始終為320x480。 我只用風景!

我希望有人能幫助我,那太好了!

提前致謝!

查看此問題的答案。 這將告訴您如何編輯圖像的像素數據。 其余的只是邏輯。

我將使用像NSArray *alphaTable這樣的數組,其容量為320 * 480(或圖像大小的輸入)。

然后,我將遍歷該數組,使用偽代碼:

static int totalRandomCount = 0;
for (int i = 0; i< [alphaTable count]; i++) {

   if ( rand() > inputPercent && [alphaTable objectAtIndex:i] > 0.0f) {
       [alphaTable setValueAtIndex: 0.0f];
       totalRandomCount++;
   }
   if (totalRandomCount > [alphaTable count] * inputPercent) return;

}

那應該使以前的編輯持久化。 (即,第一遍inputPercent是10%,然后是25%,然后是50%,然后是90%,然后是100%,可以為您提供連續顯示的圖像,而無需更改先前顯示的像素。)

這不是一種確切的方法,因此除了“有趣”的應用程序外,不應將其用於其他任何用途。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM