public static void Paste(this BitmapData data_bac, string s, PointD _p, object color = null, Font font = null, StringAlign stringalign = StringAlign.Left, StringRowAlign stringrowalign = StringRowAlign.Up) { PointD p = new PointD(_p); Bitmap bmp = s.ToBitmap(font, color, stringalign); switch (stringalign) { case StringAlign.Left: break; case StringAlign.Middle: p.X -= bmp.Half().X; break; case StringAlign.Right: p.X -= bmp.Width; break; default: throw new ArgumentException("Can't handle this parameter : stringalign"); } switch (stringrowalign) { case StringRowAlign.Up: break; case StringRowAlign.Middle: p.Y -= bmp.Half().Y; break; case StringRowAlign.Down: p.Y -= bmp.Height; break; default: throw new ArgumentException("Can't handle this parameter : stringrowalign"); } data_bac.Paste(bmp , p , color != null && !((Color)color).A.EqualsTo(byte.MinValue, byte.MaxValue) ? ImagePasteMode.Gradient : ImagePasteMode.Transparent); }
public static void Paste(this BitmapData data_bac, string s, object color = null, StringAlign stringalign = StringAlign.Left, StringRowAlign stringrowalign = StringRowAlign.Up, Font font = null) { Point p = new Point(); Bitmap bmp = s.ToBitmap(font, color, stringalign); switch (stringalign) { case StringAlign.Left: p.X = 0; break; case StringAlign.Middle: p.X = (data_bac.Width - bmp.Width) / 2; break; case StringAlign.Right: p.X = data_bac.Width - bmp.Width; break; default: throw new ArgumentException("Can't handle this parameter : stringalign"); } switch(stringrowalign) { case StringRowAlign.Up: p.Y = 0; break; case StringRowAlign.Middle: p.Y = (data_bac.Height - bmp.Height) / 2; break; case StringRowAlign.Down: p.Y = data_bac.Height - bmp.Height; break; default: throw new ArgumentException("Can't handle this parameter : stringrowalign"); } data_bac.Paste(bmp, p, ImagePasteMode.Transparent); }
public static void Paste(this BitmapData data_bac, string s, Point p, object color = null, Font font = null, StringAlign stringalign = StringAlign.Left, StringRowAlign stringrowalign = StringRowAlign.Up) { data_bac.Paste(s, new PointD(p), color, font, stringalign, stringrowalign); }