SQLの窓

2014年10月09日


PowerShell で PNG 画像にフォントを指定してテキストを書き込む

処理前



処理後



メソッドに引数を渡す場合、いったん変数に値をセットするとデータ型が確定するようで、オーバーロードのあいまいさが回避されました。
Add-Type -AssemblyName System.Drawing

# 読込み
$bmp = New-Object System.Drawing.Bitmap -ArgumentList "C:\user\lightbox\vs\button.png"
$gra = [System.Drawing.Graphics]::FromImage($bmp)

# フォント作成
$ff = New-Object System.Drawing.FontFamily -ArgumentList "メイリオ"
$type = [System.Drawing.FontStyle]::Regular
$myFont = New-Object System.Drawing.Font -ArgumentList $ff,32,$type

# ブラシ作成
$col = [System.Drawing.Color]::FromArgb(255,255,255)
$myBrush = New-Object System.Drawing.SolidBrush -ArgumentList $col

# アンチエイリアス設定
$gra.TextRenderingHint = [System.Drawing.Text.TextRenderingHint]::AntiAliasGridFit

# 書き込み
$gra.DrawString( "送信ボタン", $myFont, $myBrush, 70, 20 )

# 保存
$bmp.Save("C:\user\lightbox\vs\button_edit1.png", [System.Drawing.Imaging.ImageFormat]::Png)

$bmp.Dispose()


▼ C# でのコード
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Text;

namespace bitmap_test {
	class Program {
		static void Main(string[] args) {

			Bitmap bmp = new Bitmap(@"C:\user\lightbox\vs\button.png");

			Graphics gra = Graphics.FromImage(bmp);

			Font myFont = new Font(
				new FontFamily("メイリオ"),
				32,
				FontStyle.Regular);

			SolidBrush myBrush = new SolidBrush(Color.FromArgb(255,255,255));

			gra.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

			gra.DrawString( "送信ボタン", myFont, myBrush, 70, 20 );

			bmp.Save(@"C:\user\lightbox\vs\button_edit1.png", System.Drawing.Imaging.ImageFormat.Png);

			bmp.Dispose();

		}
	}
}



タグ:PowerShell
【PowerShellの最新記事】
posted by lightbox at 2014-10-09 01:22 | PowerShell | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり