Imagemagick 如何将批量矩形图像转换为方形图像而不进行裁剪?

Imagemagick 如何将批量矩形图像转换为方形图像而不进行裁剪?,imagemagick,image-resizing,imagemagick-convert,Imagemagick,Image Resizing,Imagemagick Convert,给定一批垂直和水平矩形图像: rect-h.png rect-v.png 如何将一批垂直和水平矩形图像转换为方形图像 因此,要获得相同的尺寸,不切割,不变形: rect-h-sq.png rect-v-sq.png 我目前使用 mkdir -p ./temp ./png # create folders to work on copies of data and store final png output cp ./* ./t

给定一批垂直和水平矩形图像:

rect-h.png

rect-v.png

如何将一批垂直和水平矩形图像转换为方形图像

因此,要获得相同的尺寸,不切割,不变形:

rect-h-sq.png

rect-v-sq.png


我目前使用

mkdir -p ./temp ./png                                  # create folders to work on copies of data and store final png output
cp ./* ./temp                                          # copies to ./temp, so to word on copies 
for file in ./temp/*.png                               # loop on the [edited] copies in ./temp
do
  keyIn=$(basename "$file" .png)                       # name of the file minus .png
  keyOut=$(basename "$file" .png)-sq.png               # name of the file minus .png, plus .-red.png 
  convert -background none -density 1200 ./temp/$keyIn.png -resize 300x300\! ./png/$keyOut   
done
但它失败了

注意:之所以有密度,是因为我也经常使用svg。

有效:

mkdir -p ./temp ./png                                  # create folders to work on copies of data and store final png output
cp ./* ./temp                                          # copies to ./temp, so to word on copies 
for file in ./temp/*.png                               # loop on the [edited] copies in ./temp
do
  keyIn=$(basename "$file" .png)                       # name of the file minus .png
  keyOut=$(basename "$file" .png)-sq.png               # name of the file minus .png, plus .-red.png 
  convert -background none -density 1200 ./temp/$keyIn.png \
     -thumbnail '300x300>' -background white \
     -gravity center -extent 300x300 -resize 300x300\! ./png/$keyOut   
done

如果不填充、裁剪或变形图像,则无法执行此操作。请澄清你想从这些选项中做什么。(在问题中:“所以要得到相同的尺寸,不要裁剪,不要变形”。另外,我在那里回答了问题)