你需要一个山羊的1200分照片吗?

2021-04-11 14:40:35

上个月,我的妻子一个我去了一个周末去纳帕。伟大的目的地:距离旧金山的大量户外活动和短途汽车。我们度过了愉快的时余,但是当我回到家并转移我的所有照片记录这次旅行时,我注意到他们正在占据一大吨磁盘空间。我'虽然不是摄影师,但我确实喜欢捕捉照片,主要用于纪念品。一张照片特别引起了我的注意:山羊。 12megapixels差不多10MB ......如此美好的质量我的肉眼并没有知道它'这让我思考了。我喜欢把它作为我在白天所做的事情的一部分,但不是那个(盘​​)费用。你可以想象它会随着时间的推移填写的速度。我需要批量调整所有这些。我也喜欢保持整个整洁的东西。我不仅需要批量调整所有图像,我还想要保留所有图像元数据和EXIF数据(日期,时间,位置等)。我无法找到一个工具来执行这样一个基本但重要的任务,所以我设置为自己建造它。在选择最佳工具并修剪到最简单和最有效的代码之后,我提出了以下内容。我添加了评论,让您可以轻松阅读任何人。它支持JPG和HEIC图像。

#!/ bin / bash#set max宽度在pixelsmaxwidth = 2000#照片?如果[$#-eq 0];然后imgfolder =" Untitled文件夹" els imgfolder = $ 1ficd" $ imgfolder" pwd#创建一个etmp文件夹来保存重采样的图像rif [-d new];然后RM -RF newfimkdir new#查找指定的folderfilecnt = $(ls *。[jj] [pp] * [gg] | wc -l)cnt = 0echo&#34中的所有JPG图像;将搜索JPGS"找 。 -maxdepth 1 -iname' *。jp * g' |读取filedo((cnt ++))imgwidth =`sips - getproperty pixelwidth" $ files" | awk' / pixelwidth / {打印$ 2}'`如果[$ imgwidth -gt $ maxwidth];然后imgheight =`sips - getproperty pixelheight" $ files" | awk' / pixelheight / {打印$ 2}'`#skip全景照片如果[$(imgwidth / imgheight))-lt 2];然后回声" $ cnt / $ filecnt $文件$ imgwidth→$ maxwidth" SIPS -Z $ MAXWIDTH" $ FILE" - 新的/" $ files" > / dev / null 2>& 1触摸-r" $ files"新/" $ files" FI FIDONE#查找指定的文件夹= $ $(LS * .heic | WC -L)CNT = 0ECHO&#34中的所有HEIC图像;将搜索HEICS"找到。 -maxdepth 1 -iname' *。reic' |读取filedo((cnt ++))imgwidth =`sips - getproperty pixelwidth" $ files" | awk' / pixelwidth / {打印$ 2}'`如果[$ imgwidth -gt $ maxwidth];然后imgheight =`sips - getproperty pixelheight" $ files" | awk' / pixelheight / {打印$ 2}'`如果[$(imgwidth / imgheight))-lt 2];然后回声" $ cnt / $ filecnt $文件$ imgwidth→$ maxwidth" SIPS格式JPEG -Z $ MAXWIDTH" $ FILE" --out new /" $ file" .jpg> / dev / null 2>& 1触摸-r" $ files"新/" $ file" .jpg rm" $ files" Fi Fidoneecho""回声"将替换原件..."回声"完成!" rsync -a new / .rm -rf new

将脚本另存为resizeImages.sh,以像素为单位调整所需的最大宽度,然后从终端执行如此:./resizeImages.sh照片(假设照片是您转储所有iPhone图像的文件夹的名称)。将所有iPhone图像转储在文件夹中,i' d推荐图像捕获。