Shell脚本查找和调整具有以下内容的图像的大小

时间:2018-10-19 15:45:38

标签: linux shell awk

我正在尝试创建一个可以设置并忘记的shell文件...

分辨率高于1920像素的图像会调整大小。对于我来说,对于电子商务商店anno 2018来说,高于1920似乎太高了... 在8K以上的图片上,Chrome bv中的iPhone只是崩溃了...

我已经在尽可能多的位置替换了脚本,以便显示适当的前端分辨率,因此不会简单地调整原始文件的大小。 Ex 4000 x 6720原始图像,现在是500 x 1000,并以250 x 500显示(因此在视网膜上仍然很清晰)。 然后,在Magento缓存中,然后在清漆缓存中,这些分辨率将处于较低的分辨率。

现在的想法是创建一个shell脚本,以清理这些“太大”的文件,并自行调整大小:

find /home/customer/customer.com \
  -type f \
  -regex "^. * \. \ (png \ | jpg \ | jpeg \) $" \
  -exec identify -format "% d,% w /% f,% h \ n "{} \; \
  | awk -F ',' '$ 2> 1080 && $ 3> 1920' \
  | grep "png \ | jpg \ | jpeg"

给我:

/home/sample/sample.com/media/catalog_fm/1453138191_LIU.JO_Dames_kleed_P16049T1633_nero_2_x15148601020101.jpg, 1440, 2160
/home/sample/sample.com/media/catalog_fm/1446052276_LIU.JO JEANS_Dames_vest_W65221E0139_22222_2_x14864501010101.jpg, 1440, 2160
/home/sample/sample.com/media/catalog_fm/1446655568_LIU-JO ACCESOIRES_Dames_shoes & boots_S65019P0055_22222_4_x14874601010101.jpg, 1440, 2160
...

目的是现在调整大小,如下所示:

convert FILENAME -verbose -resize x1920 FILENAME

我想在一个shell文件中完成所有这些单独的步骤。现在,我将生成的文件> .txt复制并解压缩,并手动运行带有复制粘贴数据的脚本。

1 个答案:

答案 0 :(得分:1)

我认为您的方法不是最好的方法,IIRC可以告诉您转换为仅调整大小的图像,IIRC:

convert -resize ${MAXWIDTH}x${MAXHEIGHT}\>  ${FILENAME}

因此,您可以找到所有图片并释放它们:

find . -type f \( -name "*.png" -or -name "*.jpg" -or -name "*.jpeg"\) -exec convert -resize ${MAXWIDTH}x${MAXHEIGHT}\> {} \;