Output-Image コマンド・レッド
使用方法
01. |
[Print Screen]キーを押下します。 画面を画像としてクリップボードへコピーします。 |
02. |
以下のようにコマンドを実行します。 PS C:\Users\Logical> Output-Image D:\tmp 実行すると D:\tmp\00001.png ファイルとして出力されます。 |
以上です。 |
ダウンロード
ソース
Param( [String] $Path, [String] $Prefix )
$STRPATH_IMAGE_FMT = '{0}{1}{2:D5}{3}'
$STRPATH_EXT = '.png'
Function Get-Image-Path
{
Param( $sPath, $sPrefix, $sExt, $nIndex )
# 戻り値
$STRPATH_IMAGE_FMT -f $sPath, $sPrefix, $nIndex, $sExt
}
Function Next-Image-Number
{
Param( $sPath, $sPrefix, $sExt )
$nIndex = 0
for( ;; )
{
$nIndex ++
$sFile = $STRPATH_IMAGE_FMT -f $sPath, $sPrefix, $nIndex, $sExt
$bExist = Test-Path $sFile
if( $bExist -eq $False )
{
break
}
if( $nIndex -ge 10000 )
{
return -1
}
}
# 戻り値
$nIndex
}
# クリップボードへ画像がコピーされている事を確認する。
# コピーされていなければ終了する。
try
{
$o = Get-Clipboard -Format Image
}
catch
{
Write-Output 'pwsh.exe ではクリップボードへの画像コピーに対応していません。'
return
}
if( $o -eq $Null )
{
Write-Output 'クリップボードに画像がコピーされていません。'
return
}
# 出力先フォルダの存在を確認する。
# 存在しなければ終了する。
$bExist = Test-Path $Path
if( $bExist -eq $False )
{
Write-Output '指定された出力先フォルダが存在しません。'
return
}
# 出力先フォルダ・パスの末尾にセパレータがあるか確認する。
# セパレータがなければ付ける。
if( $Path.EndsWith('\') -eq $False )
{
$Path += '\'
}
# 出力ファイル名(番号)を確認する。
# 戻り値が 0 未満は終了する。
$nNextIndex = Next-Image-Number $Path $Prefix $STRPATH_EXT
if( $nNextIndex -le 0 )
{
Write-Output '既に 10,000 の画像を出力しています。'
return
}
# 出力ファイル・パスを作成する。
$sFullPath = Get-Image-Path $Path $Prefix $STRPATH_EXT $nNextIndex
# クリップボードへコピーした画像をファイルへ出力する。
$o.Save( $sFullPath, [System.Drawing.Imaging.ImageFormat]::Png )