ImageMagick 识别没有 exif 数据的风景图像
ImageMagick identify landscape images with no exif data
我有几张没有 exif 数据的 JPEG 图片,大小分别为 1080x1920 和 1920x1080。我只需要识别 1920x1080 中的那些。
尝试使用
identify -size 1920x1080 *.jpg
但它也列出了纵向版本。有没有办法,可能使用 Windows Batch?
谢谢。
使用 windows powershell 时,您将遍历 JPEG 文件,并且仅对与尺寸匹配且符合通用模式的文件进行操作。
# Set environment path (so we can use `identify.exe` from program files.)
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
# Iterate over "images" directory for jpeg
Get-ChildItem C:\images -Filter *.jpg | Foreach-Object {
# Only print image dimension WIDTHxHEIGHT
$size=identify.exe -format '%wx%h' $_.FullName
if ($size -eq "1920x1080") {
# Match! print out filename
echo $_.FullName
}
}
在好的、老式的、Windows XP 和更早的版本以及更新的批次中,你可以做这样的事情来打印所有 JPEG 文件的宽度,然后是高度,然后是图像名称,以冒号分隔:
identify -format "%w:%h:%f\n" *.jpg
然后你可以在 FOR 循环中选择符合你的宽度和高度要求的那些 FINDSTR
:
for /f "tokens=1,2,* delims=:" %A in ('identify -format "%w:%h:%f\n" *.jpg ^| findstr "1920:1080"') do echo %C
如果您使用 BATCH 文件,而不是命令行提示符,您必须将所有百分号替换为双百分号,因为某些不合逻辑的原因只有 Microsoft 才能想出 - 抱歉!
我有几张没有 exif 数据的 JPEG 图片,大小分别为 1080x1920 和 1920x1080。我只需要识别 1920x1080 中的那些。
尝试使用
identify -size 1920x1080 *.jpg
但它也列出了纵向版本。有没有办法,可能使用 Windows Batch?
谢谢。
使用 windows powershell 时,您将遍历 JPEG 文件,并且仅对与尺寸匹配且符合通用模式的文件进行操作。
# Set environment path (so we can use `identify.exe` from program files.)
$env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine")
# Iterate over "images" directory for jpeg
Get-ChildItem C:\images -Filter *.jpg | Foreach-Object {
# Only print image dimension WIDTHxHEIGHT
$size=identify.exe -format '%wx%h' $_.FullName
if ($size -eq "1920x1080") {
# Match! print out filename
echo $_.FullName
}
}
在好的、老式的、Windows XP 和更早的版本以及更新的批次中,你可以做这样的事情来打印所有 JPEG 文件的宽度,然后是高度,然后是图像名称,以冒号分隔:
identify -format "%w:%h:%f\n" *.jpg
然后你可以在 FOR 循环中选择符合你的宽度和高度要求的那些 FINDSTR
:
for /f "tokens=1,2,* delims=:" %A in ('identify -format "%w:%h:%f\n" *.jpg ^| findstr "1920:1080"') do echo %C
如果您使用 BATCH 文件,而不是命令行提示符,您必须将所有百分号替换为双百分号,因为某些不合逻辑的原因只有 Microsoft 才能想出 - 抱歉!