PowerShellで縦長画像の横幅を広げる

powershell コンピュータ
powershell

縦長画像の幅を2倍にし、画像を中央に配置、余白部分は黒色をセット。

<#
.SYNOPSIS
縦長画像の横幅を広げる

.EXAMPLE
.\WideImage.ps1 .\aaa.png

.PARAMETER ImgPath
画像ファイル

.PARAMETER Help
ヘルプスイッチ

.LINK
関連URL

#>
using namespace System.Drawing
using namespace System.IO

param(
    [string]
    $ImgPath = "E:\Real-CUGAN\out\024.png",
    [switch]
    $Help
)

# アセンブリのロード
Add-Type -AssemblyName System.Drawing

$fs = [FileStream]::new($ImgPath, [FileMode]::Open, [FileAccess]::Read)
$bmp = [Bitmap]::FromStream($fs)
$fs.Close()

$w = $bmp.Width * 2
$h = $bmp.Height

$outBmp = [Bitmap]::new($w, $h)

$rect = [Rectangle]::new($bmp.Width / 2, 0, $bmp.Width, $bmp.Height)

$g = [Graphics]::FromImage($outBmp)
$g.Clear([Color]::Black)
$g.DrawImage($bmp, $rect, 0, 0, $bmp.Width, $bmp.Height, 2)
$g.Dispose()

$outDir = Split-Path $ImgPath -Parent
$outFile = Split-Path $ImgPath -Leaf
$outBase = [Path]::GetFileNameWithoutExtension($outFile)
$outExt = [Path]::GetExtension($outFile)

$outPath = Join-Path $outDir ($outBase + "-W" + $outExt)
Write-Host $outPath
$outBmp.Save($outPath, $bmp.RawFormat.Guid)

コメント