我正在从一系列JPEG生成一个GIF。
我对每幅图像使用亮度对比度选项,如下所示:
convert -loop 0 -layers optimize
-delay 10 thing1.jpg -brightness-contrast 5x5
-delay 10 thing2.jpg -brightness-contrast 5x5
-delay 10 thing3.jpg -brightness-contrast 5x5
-delay 10 thing4.jpg -brightness-contrast 5x5
thing.gif
我注意到的是,亮度和对比度的变化似乎是累积的,第一幅图像受到的影响最大。我正在寻找的是应用相同的亮度-对比度调整所有图像,但相反,第一个图像似乎增加了40%,第二个30%,等等。
还有其他人经历过吗?是否有一种方法可以对用于构建GIF的所有单个图像平等地应用相同的更改?
发布于 2014-12-17 11:17:37
以下问题见我的答案:
由于-brightness-contrast
是图像操作符(而不是图像设置),因此它将立即应用于所有当前加载的图像(然后被遗忘):
thing1.jpg
。运算符被应用于这一张图像。thing2.jpg
将被加载,但是(已经修改过的) thing1.jpg
仍然会被加载。运算符被应用于这两个图像。要解释您的+ my版本的命令是如何工作的,请注意这一点:
因此,你应该试试这个:
convert -loop 0 \
-delay 10 \
thing1.jpg \
thing2.jpg \
thing3.jpg \
thing4.jpg \
-brightness-contrast 5x5 \
-layers optimize \
thing.gif
如果您需要应用不同的值,但不累加地分别控制每个亮度对比度级别,则应使用\(.....\)
括号对图像进行“旁白”处理:
convert -loop 0 \
\( thing1.jpg -delay 10 -brightness-contrast 5x5 \) \
\( thing2.jpg -delay 20 -brightness-contrast 10x20 \) \
\( thing3.jpg -delay 100 -brightness-contrast 10% \) \
\( thing4.jpg -delay 1 -brightness-contrast 0x50 \) \
-layers optimize \
thing.gif
https://stackoverflow.com/questions/27519712
复制相似问题