当前我必须做:
convert src.jpg -resize 600 -quality 70 -colorspace sRGB scaled_images/one.jpg
composite -dissolve 25% -gravity center overlay_image1.png scaled_images/one.jpg scaled_images/one.jpg
composite -dissolve 60% -gravity southeast overlay_image2.png scaled_images/one.jpg scaled_images/one.jpg
composite -dissolve 85% -gravity north overlay_image3.png scaled_images/one.jpg scaled_images/one.jpg
由于压缩/解压缩的多个循环,最终图像质量会受到影响。
如何在一个命令中结合以上所有内容?
我正在使用imagemagick版本7.0.8-40。
答案 0 :(得分:2)
首先,在使用ImageMagick版本7时,应使用命令“ magick”而不是“ convert”。也就是说,这是一个示例,该示例应在单个命令中完成您要完成的工作...
magick src.jpg -resize 600 -compose dissolve \
-define compose:args=25 -gravity center overlay1.png -composite \
-define compose:args=60 -gravity southeast overlay2.png -composite \
-define compose:args=85 -gravity north overlay3.png -composite \
-quality 70 one.jpg
首先读取输入图像,将其调整为600像素,然后将compose方法设置为“ dissolve”。然后将溶解量设置为25%,将重力设置为“中心”,然后将第一个叠加图像合成到源上。它继续为每个连续的覆盖层设置所需的溶解量和重力,并将它们合成为每个先前操作的结果。
最后,设置输出JPG的压缩质量并写入输出文件。结果将是具有多个叠加层的源图像,每个叠加层具有不同的透明胶片和位置,并且全部都在单个命令中完成,以避免整个过程变质。
如果您在Windows上运行,则需要将那些连续的反斜杠“ \”更改为插入符号“ ^”。
还请注意,如果您必须保存并重新读取中间文件,则不应将它们保存为JPG格式,因为每次迭代都会降低质量。