CSSフォントを可能な限り反映する必要のあるコードのテキストイメージを作成しています。 CSSクラスは、次のようになります。System.Drawing.FontはCSSフォントを反映する
.font
{
letter-spacing: -0.7px;
font-family: segoe wp,segoe ui,verdana,arial,helvetica,sans-serif;
font-size: 1.15em;
padding: 10px;
}
マイ画像コードは次のようになります。
using (var helper = new Bitmap(1, 1))
using (var gHelper = Graphics.FromImage(helper))
using (var font = new Font("Segoe WP", 1.15f, GraphicsUnit.Point))
using (var brush = new SolidBrush(Color.White))
{
var size = gHelper.MeasureString(concept, font);
using (var image = new Bitmap((int)size.Width + _padding, (int)size.Height + _padding))
{
using (var g = Graphics.FromImage(image))
{
g.Clear(Color.Black);
g.DrawString(concept, font, brush, (float)_padding/2, (float)_padding/2);
}
var converter = new ImageConverter();
var b = (byte[])converter.ConvertTo(image, typeof(byte[]));
return File(b, _contentType);
}
}
このコードによって生成された画像は非常に小さいです。
私が推測している文字間隔では、ループを作成して各文字を個別に描画する必要がありますが、C#のEMでどのように動作しますか?