横長の画像ファイルを真ん中で分割し2つの画像ファイルを作ります。
<#
.SYNOPSIS
画像を分割
.EXAMPLE
.\SplitImage.ps1 .\aaa.png
.PARAMETER ImgPath
画像ファイル
.PARAMETER Help
ヘルプスイッチ
.LINK
関連URL
#>
using namespace System.Drawing
using namespace System.IO
param(
[string]
$ImgPath = "E:\Real-CUGAN\out\023.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
$outBmp1 = [Bitmap]::new($w, $h)
$outBmp2 = [Bitmap]::new($w, $h)
$rect = [Rectangle]::new(0, 0, $w, $h)
$g = [Graphics]::FromImage($outBmp1)
$g.DrawImage($bmp, $rect, 0, 0, $w, $h, 2)
$g.Dispose()
$g = [Graphics]::FromImage($outBmp2)
$g.DrawImage($bmp, $rect, $w, 0, $w, $h, 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 + "-1" + $outExt)
Write-Host $outPath
$outBmp1.Save($outPath, $bmp.RawFormat.Guid)
$outPath = Join-Path $outDir ($outBase + "-2" + $outExt)
Write-Host $outPath
$outBmp2.Save($outPath, $bmp.RawFormat.Guid)
コメント