Quartz Composer - 如何为Core Image过滤器指定目标大小?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Quartz Composer - 如何为Core Image过滤器指定目标大小?相关的知识,希望对你有一定的参考价值。
我有一个使用Core Image
滤镜的Quartz Composer合成,我想生成一个与输入不同的输出图像。作为一个愚蠢的例子,假设我想使用如下过滤器将图像垂直压缩2倍:
kernel vec4 coreImageKernel(sampler image ) {
vec4 color = sample(image, samplerCoord(image) * vec2(1.0, 2.0));
color.a = 1.0;
return color;
}
我在核心图像过滤器补丁的设置中取消选中“将定义的输出图像域定义为输入采样器DoD的联合”。但我不清楚替代方案是什么。 Core Image补丁的帮助文本建议使用Image Crop补丁,所以我做了。在我的示例中,我裁剪到输入图像大小一半的高度,并且宽度与输入图像相同。
所得到的图像的大小和内容是预期的,除了它的前四分之一是纯黑色。
在Quartz Composer中,补丁分为三个主要组,用于指定其执行模式(补丁执行遵循惰性评估方法) - consumer
,processor
,然后是provider
。消费者补丁(如Cube
,Billboard
或Gradient
)将结果呈现给目的地。这里的Core Image
补丁是一个处理器,所以它不能改变帧的最终大小。
在Quartz Composer中指定目标大小的最佳方法是使用
Sprite
补丁。
要在Quartz Composer中垂直挤压900
x900
图像,您不需要在合成中使用Core Image Filter
和Image Crop
。你需要的只是一个Sprite
补丁,而不是Billboard
。 Height
补丁中的标准化0 .... 1 Sprite
参数必须设置为0.5
(或必须设置为0 ... 2标准化比例的1.0
)。
Sprite
补丁渲染一个带有可选抗锯齿边界的四边形。四边形上的图像乘以“颜色”输入上设置的颜色,并可使用可选的“蒙版图像”输入与蒙版组合。将调整蒙版的大小以匹配图像的大小。
因此,如下图所示,目标格式为900
x450
:
虽然Billboard
补丁默认只有Width
值用于比例缩放,但您可以在设置面板中启用Custom Size
以激活其Height
值。但是在Height
中将0.5
设置为Billboard
会给你带来不正确的结果:
此外,Image Crop
补丁不会裁剪框架的边界,它只是在框架的目标尺寸内裁剪图像。
以上是关于Quartz Composer - 如何为Core Image过滤器指定目标大小?的主要内容,如果未能解决你的问题,请参考以下文章
应该如何为 laravel 4 composer 包设置 git 子模块?
如何为Amazon AWS部署设置composer标志--no-dev