2012年1月6日金曜日

◆イメージファイルを変換する

イメージファイルのフォーマットを変換する関数を作って見ました。

とりあえず、bmp、jpg、pngに対応していますが、以下の種類に対応可能なようなので、
ImageFormat メンバ
必要に応じてパラメータを増やすか、上記メンバーを直接指定するように変更すると良いでしょう。

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030

function Convert-Image
{
 
[CmdletBinding(DefaultParametersetName="png")]
 
 
param
(
   
[parameter(Mandatory=$true)]
    [ValidateScript({Test-Path $_})]
    $path,
    [Parameter(ParameterSetName="bmp")]
 
   
[switch]$ToBmp,
    [Parameter(ParameterSetName="jpeg")]
 
   
[switch]$ToJpg,
    [Parameter(ParameterSetName="png")]
 
   
[switch]$ToPng
  )
 
 
$toimage = [System.Drawing.Imaging.ImageFormat]::($PsCmdlet.
ParameterSetName)
 
dir $path | %
{
   
$fname = $_.
fullname
   
$newExtension = "." + $PsCmdlet.
ParameterSetName
   
if($_.Extension -eq $newExtension){"not target:$($_.Extension)";exit
}
   
$newFileName =
 
     
$fname -replace $_.Extension , $newExtension
    $img = new-object system.drawing.bitmap $fname
    $img.save($newFileName,$toimage
)
   
$img.
Dispose()
   
Remove-Item $fname -Confirm
  }
}


Convert-Image  -path d:\Desktop\*.png -ToBmp

0 件のコメント:

コメントを投稿