使用 ImageMagick 调整图像大小并设置背景颜色
Resize image with ImageMagick and set background color
我想用 ImageMagick 将一张 100x200 的图片调整为一张新的 400x400 图片。
到目前为止我有以下命令:
convert in.png -resize^ 400x400 -compose Copy -gravity center -extent 400x400 out.png
现在我想从 in.png 的顶部左侧像素读取颜色并将其设置为 out.png 的背景颜色。
有人知道怎么做吗?
使用-background
选项设置背景颜色:
convert in.png -resize 400x400 -background black -compose Copy -gravity center -extent 400x400 out.png
你可以得到像素ar top-left角(坐标:0,0)的颜色,像这样:
convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:
输出:
rgb(201,200,206)
如果您在 OSX/Linux/Unix 上,您可以在变量中捕获它并使用它来设置背景,如下所示:
c=$(convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:)
convert in.png -background "$c" ...
所以,如果我们从这张图片开始:
然后这样做:
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
我们会得到这个:
如果你不幸登上 Windows,你将不得不用 FOR /F
做一些难以理解的事情,你需要从 here 开始自己解决。
我用它从动画 gif 的第一帧获取左上角像素的背景颜色
convert 'original.gif[0]' -colorspace rgb -crop 1x1+0+0 text:
我想用 ImageMagick 将一张 100x200 的图片调整为一张新的 400x400 图片。
到目前为止我有以下命令:
convert in.png -resize^ 400x400 -compose Copy -gravity center -extent 400x400 out.png
现在我想从 in.png 的顶部左侧像素读取颜色并将其设置为 out.png 的背景颜色。
有人知道怎么做吗?
使用-background
选项设置背景颜色:
convert in.png -resize 400x400 -background black -compose Copy -gravity center -extent 400x400 out.png
你可以得到像素ar top-left角(坐标:0,0)的颜色,像这样:
convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:
输出:
rgb(201,200,206)
如果您在 OSX/Linux/Unix 上,您可以在变量中捕获它并使用它来设置背景,如下所示:
c=$(convert in.png -colorspace rgb -format "%[pixel:p{0,0}]" info:)
convert in.png -background "$c" ...
所以,如果我们从这张图片开始:
然后这样做:
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
我们会得到这个:
如果你不幸登上 Windows,你将不得不用 FOR /F
做一些难以理解的事情,你需要从 here 开始自己解决。
我用它从动画 gif 的第一帧获取左上角像素的背景颜色
convert 'original.gif[0]' -colorspace rgb -crop 1x1+0+0 text: