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