我正在尝试创建一个我可以设置并忘记的 shell 文件...
分辨率高于 1920 像素的图像会调整大小。高于 1920 在我看来对于电子商务商店 anno 2018 来说太高了...... 在 8K+ 图像上,Chrome bv 中的 iPhone 会崩溃......
我已经在尽可能多的地方替换了脚本,以便显示前端适当的分辨率,因此不会简单地调整原始文件的大小。 Ex 4000 x 6720 original,现在是 500 x 1000,显示为 250 x 500(因此它在视网膜上仍然清晰)。 然后这些将以较低的分辨率出现在 Magento 缓存中,然后出现在 Varnish 缓存中。
现在的想法是创建一个 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 并将其解压缩,使用手动复制粘贴的数据运行脚本。
最佳答案
我认为您的方法不是最好的,您可以告诉转换为仅在图像较大时调整图像大小,IIRC:
convert -resize ${MAXWIDTH}x${MAXHEIGHT}\> ${FILENAME}
所以你可以找到所有的图片并在它们上释放查找:
find . -type f \( -name "*.png" -or -name "*.jpg" -or -name "*.jpeg"\) -exec convert -resize ${MAXWIDTH}x${MAXHEIGHT}\> {} \;
关于linux - 用于查找和调整图像大小的 Shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52895815/