linux - 用于查找和调整图像大小的 Shell 脚本

标签 linux shell awk

我正在尝试创建一个我可以设置并忘记的 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/

相关文章:

linux模块编译丢失的文件夹asm

linux - @reboot cron 作业的替代方案,在 cron 守护进程启动时启 Action 业

python - 丢失编码( shell 和重音)

linux - 用于替换文件中所有出现的占位符的 bash 脚本

shell - 如何在管道分隔文件中使用 awk 命令从文件中仅获取奇数条目?

删除冒号之前的所有文本

c - 我们如何通过键盘端口重新启动

c++ - 在 Unix/Linux (Ubuntu) 中编译头文件和两个 .cpp 文件

perl - 我应该在 Perl 中转义 shell 参数吗?

c - Linux:写一个C程序,那个 'controls'一个shell