やがすり

適当にいろいろと

写真データから向きの情報を削除する

スマートフォンデジタルカメラで撮影した写真をPC上で表示すると、Exifによる方向情報のおかげで写真の向きが勝手にいい感じになります。

ところが写真を別のシステムにアップロードするようなときには、この勝手にいい感じになる機能が邪魔になります。

割とお急ぎで、さらにいうとWindows標準の機能でなんとかしたいところから、 ひとまず写真よりExifの方向情報Orientationを削除するWindows PowerShellスクリプトを作成しました。

スクリプトはps1とcmdのふたつ一組。

適当なフォルダにスクリプトふたつ入れて、バッチファイル(.cmdの側)に写真(イメージファイル)をドラッグアンドドロップで放り込めばOK。

いろいろと乱暴だけど、とりあえずは動きます……。

Remove-MyExifOrientation.cmd

@echo off
powershell -ExecutionPolicy RemoteSigned -File %~dp0Remove-MyExifOrientation.ps1 %* 

Remove-MyExifOrientation.ps1

#
# 写真データよりExifの方向情報を削除します
# スクリプトの引数としてイメージファイルのパスが必要

Set-StrictMode -Version Latest

Add-Type -AssemblyName System.Drawing

$args |
foreach {
    $sourcePath = (Resolve-Path $_).Path
    $targetDir = Join-Path (Get-Item $sourcePath).Directory "out" 
    $targetPath = Join-Path $targetDir (Get-Item $sourcePath).Name

    if (!(Test-Path $targetDir)) {new-item -ItemType Directory $targetDir}

    $ph = New-Object -TypeName System.Drawing.Bitmap -ArgumentList $sourcePath
    $ph.RemovePropertyItem(274)
    $ph.Save($targetPath)
}