平均多个UIImages

时间:2011-10-30 22:36:28

标签: iphone ios uiimage average blending

我一直在寻找这个答案。但是我找不到它。

我想平均30个UIimages的像素。为此,我想使用Quartz2D而不是覆盖所有图像的所有像素。我觉得,为了将30幅图像拼凑在一起,我应该将每个图像的alpha通道调整到1/30。然后,在将一个涂在另一个上面后,我会得到所需的效果。

所需公式应为:Dest Px =(img [0] .px + .... img [29] .px)/ 30

我尝试使用imageContext实现它并将图像混合在一起而没有运气:

UIGraphicsBeginImageContext(CGSizeMake(sz.width, sz.height));

for (int i=0; i<30; i++) {

    UIImage* img = [self.delegate requestImage:self at:i];

    CGPoint coord = [self.delegate requestTranslation:self at:i];

    [img drawAtPoint:coord blendMode:kCGBlendModeNormal alpha:1/30];

}

UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

我如何获得许多UIimages的平均图像? 我也试过添加一个包含许多子图层的图像,但是我也得到了图像。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试更改以下内容:

[img drawAtPoint:coord blendMode:kCGBlendModeNormal alpha:1/30];

[img drawAtPoint:coord blendMode:kCGBlendModeNormal alpha:1.0/30.0];

1/30(使用整数值)== 0,因此您将完全透明地绘制图像。添加.0即表示您需要CGFloat