带C4Movie的C4Image滤镜

时间:2014-01-28 02:43:34

标签: c4

快速提问。我想在C4中动态着色电影有没有办法可以使用C4Image兼容的temperatureAndTint和C4Movie的纹理参考?或者我可以在电影上构建一个透明的C4Image并着色吗?我已经尝试了这两种方法并抱怨。

思想?

1 个答案:

答案 0 :(得分:1)

平面颜色是为电影着色的最简单方法。

在C4中,您可以通过在影片顶部添加图层并指定图层的颜色来实现此目的。以下代码使用透明的C4RED来为电影着色:

-(void)setup {
    C4Movie *m = [C4Movie movieNamed:@"inception.mov"];
    m.width = self.canvas.width;
    m.shouldAutoplay = YES;
    m.loops = YES;

    C4Shape *tintShape = [C4Shape rect:m.bounds];
    tintShape.lineWidth = 0.0f;
    tintShape.fillColor = [C4RED colorWithAlphaComponent:0.2f];
    [m addShape:tintShape];

    [self.canvas addMovie:m];
}

将任何其他类型的CIFilter应用于iOS中的电影真的很难。您必须学习如何动态抓取帧并直接使用Core Graphics将滤波器应用于各个帧,因为它们来自帧缓冲区。这是一个非常令人讨厌的步骤,从平坦的色调变为对iOS电影的CIFilter效果。

您还可以查看Brad Larson的GPUImage项目,该项目有自己的GPUImageMovie类。