Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 根据图像大小将画布添加到高度或宽度_Linux_Canvas_Imagemagick - Fatal编程技术网

Linux 根据图像大小将画布添加到高度或宽度

Linux 根据图像大小将画布添加到高度或宽度,linux,canvas,imagemagick,Linux,Canvas,Imagemagick,针对Imagemagick(或其他可行的解决方案)提出以下问题 案例:使用photoshop,我会在上传到我的网店之前裁剪图像。我们以卖裤子为例。我会自动剪切它们,这样就去掉了空白,我只得到了裤子的漂亮图像。问题是该图像的宽度可能低于250px。谷歌希望这些图片的最小尺寸为250x250,用于谷歌购物的衣服 因此,我寻找以下解决方案: 在我的linux Web服务器上,在高度或宽度低于250px的子目录中搜索图像。将画布大小添加到高度或宽度(居中),使最小宽度或高度为250px 最好(最快)的解

针对Imagemagick(或其他可行的解决方案)提出以下问题

案例:使用photoshop,我会在上传到我的网店之前裁剪图像。我们以卖裤子为例。我会自动剪切它们,这样就去掉了空白,我只得到了裤子的漂亮图像。问题是该图像的宽度可能低于250px。谷歌希望这些图片的最小尺寸为250x250,用于谷歌购物的衣服

因此,我寻找以下解决方案:

在我的linux Web服务器上,在高度或宽度低于250px的子目录中搜索图像。将画布大小添加到高度或宽度(居中),使最小宽度或高度为250px

最好(最快)的解决方案是什么?我有很多图片…-)

谢谢

HRR

==

编辑:要清除:

  • 旧尺寸(示例1):180x900->新尺寸250x900
  • 旧尺寸(示例2):900x240->新尺寸:900 x 250 所以我不想要一个250x250的正方形图像。最低点的最小宽度或高度应为250px

    我使用.jpg处理图像 图像应该被覆盖


    谢谢

    在ImageMagick中,可以使用-extent来填充图像。假设您想要将焊盘放在四周(居中的图像),然后

    转换图像-背景颜色-重心-范围250x250结果

    其中somecolor可以是任何颜色,包括“透明”。如果您希望ImageMagick也进行修剪,那么

    转换图像-模糊XX%-修剪+重新分页-背景颜色-重心-范围250x250结果

    其中XX是介于0和100之间的某个值,通常接近于零,这允许背景在一定程度上与均匀颜色不同。它允许去除背景颜色的某些百分比变化

    如果图像较大,也可以让imagemagick调整其大小

    转换图像-模糊XX%-修剪+重新分页-调整250x250大小-背景颜色-重心-范围250x250结果

    最佳解决方案是:

  • 创建图像缓存,在其中存储动态调整大小的图像
  • 将所有图像链接到一个脚本,该脚本检查缓存中的 指定大小的图像,然后从 缓存或调整大小->在缓存中存储->传送图像

  • 您正在使用的哪些网站商店还没有这样做?

    ImageMagick通常包括“mogrify”程序,该程序可以批量调整图像大小、居中和填充图像。这样的命令将调整当前目录中每个*.png图像的大小,使其最大宽度或高度为250像素,用白色填充至250x250,并将其写入原始文件名

    mogrify -resize 250x250 -background white -gravity center -extent 250x250 *.png
    

    将覆盖原始图像,所以考虑在一个拷贝上运行它,或者使用MOGRITY的“-PATH某处”来指定输出文件的另一个目录。

    < P>使用IMAMGAGICK的“MOGRITIZE”的这个命令将贯穿当前目录中的所有*.jpg图像,并根据需要将每个图像置于白色填充的中心,以使最小尺寸达到250像素宽和高。超过250像素的尺寸保持不变

    mogrify -virtual-pixel white \
       -set option:distort:viewport "%[fx:max(w,250)]x%[fx:max(h,250)]" \
       -distort affine "0,0 %[fx:250>w?(250-w)/2:0],%[fx:250>h?(250-h)/2:0]" *.jpg
    
    这将计算视口在两个方向上至少为250像素的必要尺寸。然后,仅当图像以某种方式小于该视口时,它才会将图像上下滑动,或同时将图像上下滑动,使其在现在放大的视口中居中。虚拟像素设置确保填充为白色

    它将覆盖输入图像,因此请谨慎使用

    您可能希望包含“-quality 100”,以最大限度地减少以JPG格式保存时发生的质量损失


    我在Windows中用IM7编写了这个命令,但是这个命令是*nix语法的。我在bash中使用IMv6.8.9对其进行了测试,它似乎工作正常。

    感谢您的时间和响应。请检查我的问题的编辑/更新。我想现在我想要的结果会更清楚。谢谢请参阅我的回复,下面添加了一个示例命令作为新答案。。。或以上。。。