Public/media/ConvertTo-Image.ps1
enum ImageFormat { MemoryBMP; Bmp ; Emf; Wmf; Jpeg; Png; Gif; Tiff; Exif; PhotoCD; Icon } function ConvertTo-Image { <# .SYNOPSIS Converts input to an image .DESCRIPTION Converts input file to an image. Supported output types: MemoryBMP, Bmp , Emf, Wmf, Jpeg, Png, Gif, Tiff, Exif, PhotoCD, Icon .PARAMETER Files Input files .PARAMETER Format Output Image format type .EXAMPLE Get-ChildItem C:\test -Filter "*.gif" | ConvertTo-Image -Format Png Converts all gif animations from location 'C:\test' into png files #> [CmdletBinding()] param( [Parameter(Mandatory = $false, Position = 0, ValueFromPipeline = $true)] $Files, [ImageFormat] [Parameter(Mandatory = $true, Position = 1)] $Format ) begin { Write-Verbose "Conversion start" } process { function Get-ImageFormat { param ($format) switch ($format) { "MemoryBMP" { [System.Drawing.Imaging.ImageFormat]::MemoryBMP } "Bmp" { [System.Drawing.Imaging.ImageFormat]::Bmp } "Emf" { [System.Drawing.Imaging.ImageFormat]::Emf } "Wmf" { [System.Drawing.Imaging.ImageFormat]::Wmf } "Jpeg" { [System.Drawing.Imaging.ImageFormat]::Jpeg } "Png" { [System.Drawing.Imaging.ImageFormat]::Png } "Gif" { [System.Drawing.Imaging.ImageFormat]::Gif } "Tiff" { [System.Drawing.Imaging.ImageFormat]::Tiff } "Exif" { [System.Drawing.Imaging.ImageFormat]::Exif } "Icon" { [System.Drawing.Imaging.ImageFormat]::Icon } Default { } } } $formatType = Get-ImageFormat $Format $fullName = $input.FullName $image = [System.Drawing.Image]::FromFile($fullName); $filePath = [IO.Path]::ChangeExtension($fullName, ".$($formatType.ToString().ToLower())"); $image.Save($filePath, $formatType); $image.Dispose(); } end { Write-Verbose "Conversion done" } } |