我几乎在每台 Windows 7 计算机上都安装了几个应用程序。这些应用程序包括:
- Windows Live 图库(Windows Live Essentials)
- Picasa
- Windows 7 中随附的任何内容
哪个应用程序可以批量旋转一个文件夹中的所有图片根据 EXIF 信息?
我知道有很多应用程序可以做到这一点,但是有任何标准应用程序可以做到这一点吗?有时我无法安装任何新东西,而且我在不同的地方使用几台不同的计算机。
让我重复一遍 - 我想根据 EXIF 信息转换图片,而不是全部图片。
答案1
答案2
Windows 7 默认安装了 PowerShell,它可用于通过 WIA(Windows 图像采集)或 .Net 系统绘图对象编写图像编辑脚本。这是一个快速的 powershell 脚本,使用 .Net 方法将当前目录中找到的所有 jpg 顺时针旋转 90 度。
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
dir *.jpg |
ForEach-Object {
$image = [System.Drawing.image]::FromFile( $_ )
$image.rotateflip("Rotate90FlipNone")
$image.save($_)
}
旋转限制为 90 度增量,包括图像翻转方向。
答案3
进入包含所有照片的目录。切换到“详细信息”视图。右键单击其中一列,然后单击“更多”。勾选适当的 EXIF 详细信息,然后单击“确定”。现在根据此 EXIF 详细信息过滤所有文件,最后选择所有照片,右键单击以顺时针或逆时针旋转。
答案4
使用以下内容旋转来自 csv 文件的 jpg:
function batchRotateFromCSV([Parameter(Mandatory=$True)] $csvFile) {
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$imageFormat = "System.Drawing.Imaging.ImageFormat" -as [type]
Import-Csv $csvFile | Select PathToImage | ForEach {
$image = [System.Drawing.image]::FromFile($_.PortraitFile)
$image.RotateFlip([System.Drawing.RotateFlipType]::Rotate90FlipNone)
$image.save($_.PathToImage, $imageFormat::jpeg)
}
}
当然可以更改文件格式图像也是如此。
请注意,这PathToImage
将是您的 CSV 中标题的名称。