linux - 用于查找和调整具有
问题描述
我正在尝试创建一个可以设置并忘记的shell文件...
分辨率高于 1920 像素的图像会调整大小。在我看来,对于 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 并提取它,手动运行带有复制粘贴数据的脚本。
解决方案
我认为您的方法不是最好的,您可以告诉 convert 仅在图像较大时才调整图像大小,IIRC:
convert -resize ${MAXWIDTH}x${MAXHEIGHT}\> ${FILENAME}
所以你可以找到所有的图片并释放它们:
find . -type f \( -name "*.png" -or -name "*.jpg" -or -name "*.jpeg"\) -exec convert -resize ${MAXWIDTH}x${MAXHEIGHT}\> {} \;
推荐阅读
- node.js - 使用 nodejs 加密签名/验证总是错误的
- android - 如何获取 Spinner 的下拉箭头图像资源?
- installation - 服务人员不安装仅添加到主屏幕
- django - “用户”对象没有属性“soft_delete” - Django 软删除
- swift - 检查 Swift 中的泛型子类
- javascript - 如何从每次更新的 htm 或 xml 文件在网站上显示文本
- c - 如何防止链接器丢弃函数?
- http - 降级健康检查的 HTTP 状态码应该是什么?
- ionic-framework - 在android中隐藏底部系统栏 - ionic v4
- c# - C# 为什么不能在类范围内更改变量值?