- 元のjpeg画像の縦横ピクセルを0.5倍にしたjpeg画像を新たに保存
- [Graphics]::FromImage で 画像に文字列(DrawString)、四角形(DrawRectangle)、線(DrawLine)を描画
using assembly System.Drawing
using namespace System.Drawing
$img = [Image]::FromFile(
"${env:USERPROFILE}\Desktop\tmp\写真001.jpg")
Write-Host @"
幅: $($img.Width)
高さ: $($img.Height)
水平方向の解像度: $($img.HorizontalResolution)
垂直方向の解像度: $($img.VerticalResolution)
ビットの深さ: $([Image]::GetPixelFormatSize($img.PixelFormat))
"@
$bmp = [Bitmap]::new(
$img.Width * 0.5, $img.Height * 0.5, [Imaging.PixelFormat]::Format24bppRgb)
$bmp.SetResolution(
$img.HorizontalResolution * 0.5, $img.VerticalResolution * 0.5)
$g = [Graphics]::FromImage($bmp)
$g.DrawImage($img, 0, 0, $bmp.Width, $bmp.Height)
$g.DrawString(
"参考資料",
[Font]::new("MS ゴシック", 28),
[SolidBrush]::new([Color]::FromArgb(192, 0, 0)),
20 / 25.4 * $bmp.HorizontalResolution, 10 / 25.4 * $bmp.VerticalResolution)
$g.DrawRectangle(
[Pen]::new([Color]::FromArgb(192, 0, 0), 2 / 72 * $bmp.HorizontalResolution),
20 / 25.4 * $bmp.HorizontalResolution, 10 / 25.4 * $bmp.VerticalResolution,
50 / 25.4 * $bmp.HorizontalResolution, 10 / 25.4 * $bmp.VerticalResolution)
$g.DrawLine(
[Pen]::new([Color]::FromArgb(192, 0, 0), 2 / 72 * $bmp.HorizontalResolution),
0, 0, $bmp.Width, $bmp.Height)
$g.DrawLine(
[Pen]::new([Color]::FromArgb(192, 0, 0), 2 / 72 * $bmp.HorizontalResolution),
0, $bmp.Height, $bmp.Width, 0)
$g.Flush([Drawing2D.FlushIntention]::Sync)
$g.Dispose()
$bmp.Save(
"${env:USERPROFILE}\Desktop\tmp\写真001_new.jpg",
[Imaging.ImageFormat]::Jpeg)
Write-Host @"
幅: $($bmp.Width)
高さ: $($bmp.Height)
水平方向の解像度: $($bmp.HorizontalResolution)
垂直方向の解像度: $($bmp.VerticalResolution)
ビットの深さ: $([Image]::GetPixelFormatSize($bmp.PixelFormat))
"@
$bmp.Dispose()
$img.Dispose()