覚書が書かれたテキストファイルをbitmapに描画して壁紙用画像ファイルを作成します。
スクリプト
<#
.SYNOPSIS
覚書壁紙作成
.DESCRIPTION
文字列を画像の右側に描画
.EXAMPLE
PS>.\ChatSheetWallPaperMaker.ps1 -TextFileName テキストファイル名 -ImageFileName 画像ファイル名
#>
using namespace System.Windows.Forms
using namespace System.Drawing
Param(
$TextFileName,
$ImageFileName
)
# 壁紙サイズ
$width = 1366
$height = 786
# フォント
$fontSize = 20
$fontFamilly = "MS UI GOTHIC"
$font = [Font]::new($fontFamilly, $fontSize)
# 背景色
$backgroundColor = [SolidBrush]::new("DimGray")
# 前景色
$forgroundColor = "LightGray"
$bmp = [Bitmap]::new($width, $height)
$g = [Graphics]::FromImage($bmp)
# 背景塗つぶし
$rect = [Rectangle]::new(0, 0, $width, $height)
$g.FillRectangle($backgroundColor, $rect)
# 文字列の読み込み
# 最大文字数と高さ計測
$txtWidth = 0
$txtHeight = 0
foreach($line in Get-Content $TextFileName -Encoding UTF8)
{
$m = [TextRenderer]::MeasureText($g, $line, $font)
if ($txtWidth -lt $m.Width)
{
$txtWidth = $m.Width
}
if ($txtHeight -lt $m.Height)
{
$txtHeight = $m.Height
}
}
# 文字列の描画
Write-Host $txtWidth $txtHeight
$i = 0
foreach($line in Get-Content $TextFileName -Encoding UTF8)
{
Write-Host $line
$w = $width - ($txtWidth + 10)
$h = 10 + ($txtHeight + 1) * $i
[TextRenderer]::DrawText($g, $line, $font, [Point]::new($w, $h), $forgroundColor);
$i++
}
$g.Dispose()
$bmp.Save($ImageFileName, [Imaging.ImageFormat]::Png)
$bmp.Dispose()
壁紙サイズは環境に合わせて調整のこと
結果
win10壁紙設定手順
- デスクトップで右クリック
- 個人用設定(R)
- 参照ボタン
コメント