php – 移动并替换超过特定分辨率的所有子目录中的每个图像
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 移动并替换超过特定分辨率的所有子目录中的每个图像,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1400字,纯文字阅读大概需要3分钟。
内容图文
![php – 移动并替换超过特定分辨率的所有子目录中的每个图像](/upload/InfoBanner/zyjiaocheng/797/49129fba64aa462fa68ff2bb292f0625.jpg)
我需要每天运行一个cron作业来移动宽度或高度超过1000px的所有图像,然后使用默认图像替换移动的图像,该图像位于运行此脚本的同一目录中.
/gwart.co.uk/mediawiki/images/too_large.jpg //file used to replace old image
我已经能够使用以下方式过滤所有图像:
find -type f -regex "^.*\.\(png\|jpg\|jpeg\)$" -printf "%p, " -exec identify -format "%w, %h\n" {} \; | awk -F ',' '$2 > 1000 || $3 > 1000'
哪个会输出
./b1/Eldar_Guardian.png, 892, 1767
./b2/Farseer_with_Guardians1.png, 894, 1308
哪个显示文件,但事实是没有丢弃awk我不知道如何实际移动这些图像,然后将原始文件名存储为too_large.jpg的cp
我的目标是为此使用Bash,但是如果有人愿意,也可以选择Php.
另一个烦人的要求是原始文件类型需要持久存在,其中也存在相关的too_large文件.
>移动高度或宽度超过1000像素的图像,无论哪个匹配.
> cp too_large [.jpg / .png / .jpg]移动图像位置
解决方法:
假设你有详细信息,那么这样的事情怎么样 –
find -type f -regex "^.*\.\(png\|jpg\|jpeg\)$" -printf "%p, " -exec identify -format "%w, %h\n" {} \; |
awk -F ',' '$2 > 1000 || $3 > 1000 {print $1}' |
while read -r file
do mv "$file" "some/other/place/$newName"
cp /gwart.co.uk/mediawiki/images/too_large.jpg "$file"
done
原始查找会垂直和水平返回文件名和像素数.
./b1/Eldar_Guardian.png, 892, 1767
./b2/Farseer_with_Guardians1.png, 894, 1308
你的awk已经选择了超大文件;我刚刚添加了一个步骤,只在找到文件名时打印文件名.
awk -F ',' '$2 > 1000 || $3 > 1000 {print $1}' | # print of X or Y >1k
所以循环只需要读取和处理文件名.
内容总结
以上是互联网集市为您收集整理的php – 移动并替换超过特定分辨率的所有子目录中的每个图像全部内容,希望文章能够帮你解决php – 移动并替换超过特定分辨率的所有子目录中的每个图像所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。