我正在开发一款iPhone应用程序,它需要具备在某些操作后显示图像的功能。
例如:
我有2个UIImages在彼此之上。背面的UIImage是要显示的图像。顶部的UIImage需要覆盖此图像。我需要一种方法来揭示图像。因此,如果我调用该方法,并且假设我作为参数50(代表50%),则需要将顶部UIImage的一半像素设置为不透明度0.我知道我必须将图像读入数据,然后我可以编辑像素。但我需要编辑随机像素,否则如果我用50调用方法,则图像的顶部已经可见。所以我需要将像素的不透明度设置为0,但是随机。这会给你一种“雪”效果,例如当我调用方法并将100作为参数时,这意味着100%的像素必须得到0的不透明度,因此可以看到完整的图像。
随机是很重要的,因为使用随机,这会慢慢显示图像,而不是显示图像的一半,因为乐趣已经结束; - )
轻松实现:编辑像素的图像始终为320x480。我只使用风景!
我希望有人可以帮助我,那太好了!
提前致谢!
答案 0 :(得分:0)
Check out the answer to this question.这将告诉您如何编辑图像的像素数据。其余的只是逻辑。
我使用像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%会给你一个连续出现的图像,而不会改变以前显示的像素。)
这不是一个确切的方法,所以除了“有趣”的应用程序之外,它不应该被用于任何东西。