[英]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.