ImageMagick 识别没有 exif 数据的风景图像

ImageMagick identify landscape images with no exif data

我有几张没有 exif 数据的 JPEG 图片,大小分别为 1080x1920 和 1920x1080。我只需要识别 1920x1080 中的那些。

尝试使用

identify -size 1920x1080 *.jpg

但它也列出了纵向版本。有没有办法,可能使用 Windows Batch?

谢谢。

使用 windows 时,您将遍历 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 才能想出 - 抱歉!