使用ImageMagick调整图像大小并设置背景颜色

anh*_*aol 2 imagemagick extend

我想用ImageMagick将100x200图像调整为新的400x400图像.

到目前为止,我有以下命令:

convert in.png -resize^ 400x400 -compose Copy -gravity center -extent 400x400 out.png
Run Code Online (Sandbox Code Playgroud)

现在我想从in.png的顶部左侧像素中读取颜色,并将其设置为out.png的背景颜色.

有谁知道怎么做?

Mar*_*ell 8

您可以像这样获得像素左上角(坐标:0,0)的颜色:

convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:
Run Code Online (Sandbox Code Playgroud)

输出:

rgb(201,200,206)
Run Code Online (Sandbox Code Playgroud)

如果您使用的是OSX/Linux/Unix,则可以在变量中捕获它并使用它来设置背景,如下所示:

c=$(convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:)
convert in.png -background "$c" ...
Run Code Online (Sandbox Code Playgroud)

那么,如果我们从这张图片开始:

在此输入图像描述

这样做:

c=$(convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:)

echo $c           # Check that puppy's colour
rgb(255,0,0)      # Yep, it's red

convert -background "$c" in.png -resize 400x400 -gravity center -extent 400x400 out.png
Run Code Online (Sandbox Code Playgroud)

我们会得到这个:

在此输入图像描述

如果你不幸在Windows上,你将不得不做一些难以理解的东西FOR /F,你需要从这里自己解决.