我收到了公司内不同人员提交的大量图片。除了手动浏览所有图片外,有没有办法将分辨率低于 300 dpi 且高度/宽度低于 1800 px 的图片“拒绝”到单独的文件夹中?
答案1
没有标准方法可以做到这一点。
您需要某种脚本定期遍历文件夹并将不符合条件的文件移动到“拒绝”文件夹。
最简单的方法可能是编写脚本图像魔术师。
这是一组用于图像转换和/或处理的(免费)命令行实用程序。其中的命令可用于查询多种不同图像格式的图像的大小/分辨率和颜色深度。ImageMagick
的“identify”命令可能最有用。
例如:
$ identify rose.jpg
rose.jpg JPEG 640x480 sRGB 87kb 0.050u 0:01
答案2
提示:
ExifTool 适用于 Windows,并且可以根据元数据轻松移动或复制文件。
值得一提的是:“DPI”仅对打印或扫描的图像有效。标有“DPI”的元数据值可以通过使用 Exiftool 进行更改 - 与在计算机上查看文件或手头图像的“质量”无关。
注意:许多较旧或较新的傻瓜相机默认 DPI 为 72,并且无法在相机中更改
例如,Photoshop 会根据此值显示图像的大小,这简直就是“胡说八道”——开发人员的疏忽。您需要做的就是记录一个“操作”,将 DPI 值设置为 300 或更高(Resize image
)——它会在几分之一秒内运行并保留图像“原样”;只需确保取消勾选[v] Resample image
。从那时起,PS 就会跳过“胡说八道”到合理的水平。
示例:创建一个
sortimages.bat
包含以下一行的文件。
@exiftool -jfif:Xresolution=300 -jfif:Yresolution=300 -r -d ..\SortedPictures\%Y\%Y-%m-%d_%%f.%%e "-filename<createdate" %1
确保将其保存在 PATH 变量中存在的目录中。或者将 eg 添加;C:\cmd-utils\
到 PATH 末尾,创建目录,将 bat 文件放在目录中。
下载 Exiftool.exe 并将其放在同一目录中。
当您开始cmd.exe
运行该 bat 文件时,它将只是一个简单的sortimages
.
从此便
cd /d DIR_WHERE_YOUR_IMAGES_LIVE
顺从了
sortimages *.*
;
A)将所有图像的分辨率元数据重置为 300 DPI,
b)将图像复制到SortedPictures
目录树中名为 - 的文件夹中(=父目录,以避免与当前作业发生冲突)。
每幅图像将被放置在按拍摄年份划分的子文件夹中,并且其文件名将反映拍摄日期和时间。
稍微警告一下:这并非万无一失,例如,元数据中没有创建日期的图像将不会被放置在新目录中;它们将重置分辨率值并复制到原始文件名,而原始文件将保留在原处,并在名称后附加一个额外的“原始”。
更多内容:
https://raspberrypi.stackexchange.com/a/14359/17854
我想用 ImageMagick 更改 DPI,但不更改图像数据的实际字节大小
Exiftool -http://www.sno.phy.queensu.ca/~phil/exiftool/
现在拒绝尺寸对于 cmd.exe 用户来说可能是一个挑战(我认为没有简单的解决方案)。
我不知道 PowerShell 如何处理这种情况 - 但我希望它能“很好”:
exiftool -p '$Filename - $ImageSize' *.*
将在一个简单的表格中打印文件名和图像大小。
这里还有一个额外的内容;抱歉,我不太熟悉 cmd.exe 和 Powershell。
自动拒绝,在 Linux 或 www.cygwin.com 中使用bash
shell
单行执行...(确保所有内容都;
没有前导空格)
exiftool -p '$Filename $ImageWidth $ImageHeight' *.jpg | (读取 fwh 时;如果 [“$w”-gt“$h”] 则执行;然后 t="$h"; h="$w"; w="$t"; fi; echo "$f $h"; 如果 [“$h”-lt“1800”]; 然后 mv“$f”"REJECTED_$f"; fi; 完成 )
或者作为简短的脚本²:
/bin/bash #!/bin/bash exiftool -p'$文件名$图像宽度$图像高度'*.jpg \ | ( while 读取 fwh;执行 如果 [ “$w” -gt “$h” ]; 然后 t="$h" h="$w" w="$t" 菲 回显“$f $h” 如果 [ “$h” -lt “1800” ]; 然后 mv "$f" "REJECTED_$f" 菲 完毕 )
² 要创建它;选择notepad
或nano
并输入,保存为文件。执行chmod 755 filename
后,它将像任何可执行文件一样运行。