0

我正在开发一个 iPhone 应用程序,该应用程序需要具有在某些操作后显示图像的功能。

例如:

我有 2 个 UIImages 在彼此之上。背面的 UIImage 是要显示的图像。顶部的 UIImage 需要覆盖此图像。我需要一种可以告诉我显示图像的方法。因此,如果我调用该方法,并且假设我将顶部 UIImage 的一半像素设置为参数 50(代表 50%),则需要将其设置为不透明度 0。我知道我必须将图像读入数据,然后我可以编辑像素。但是我需要编辑随机像素,否则如果我用 50 调用该方法,则图像的顶部已经可见。所以我需要将像素的不透明度设置为 0,但是是随机的。这会给你一种“雪”的效果,例如当我调用该方法并给出 100 作为参数时,这意味着 100% 的像素必须获得 0 的不透明度,因此完整的图片是可见的。

随机很重要,因为使用随机,这会慢慢显示图像,而不是显示图像的一半,因为乐趣已经结束;-)

为方便起见:用于编辑像素的图像始终为 320x480。我只用风景!

我希望有人可以帮助我,那就太好了!

提前致谢!

4

1 回答 1

0

看看这个问题的答案。 这将告诉您如何编辑图像的像素数据。其余的只是逻辑。

我会使用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%,应该会为您提供连续出现的图像,而不会更改先前显示的像素。)

It's not an exact method, so it shouldn't be used for anything but a "fun" app.

于 2010-07-09T12:24:19.867 回答