CreateImageToBase64(300, 300, “生成图片base64”);
/// <summary>
/// 图片添加任意角度文字(文字旋转是中心旋转,角度顺时针为正)
/// </summary>
/// <param name="width">宽</param>
/// <param name="height">高</param>
/// <param name="text">文字内容</param>
/// <param name="angle">文字旋转角度</param>
/// <param name="fontName">字体名称</param>
/// <returns>添加文字后的Bitmap对象</returns>
public static string CreateImageToBase64(int width, int height, string text, int angle = -60,string fontName = "黑体")
{
//创建一个位图对象
Bitmap image = new Bitmap(width, height);
//创建Graphics
Graphics graphics = Graphics.FromImage(image);
//清空图片背景颜色
graphics.Clear(Color.White);
//消除锯齿
graphics.SmoothingMode = SmoothingMode.AntiAlias;
//高质量,低速度绘制
graphics.CompositingQuality = CompositingQuality.HighQuality;
Font font = new Font(fontName, 10, FontStyle.Italic);
SizeF sf = graphics.MeasureString(text, font); // 计算出来文字所占矩形区域
// 左上角定位
float x1 = (width / 2) / 3;
float y1 = height / 2;
// 进行文字旋转的角度定位
if (angle != 0)
{
Matrix matrix = graphics.Transform;
matrix.RotateAt(angle, new PointF(x1 + sf.Width / 2, y1 + sf.Height / 2));
graphics.Transform = matrix;
}
// 写上自定义角度的文字
graphics.DrawString(text, font, new SolidBrush(Color.LightGray), x1, y1);
graphics.Dispose();
//保存图片
//image.Save("C:\\Temp\\001.jpg");
//生成Base64位
MemoryStream ms = new MemoryStream();
image.Save(ms, ImageFormat.Jpeg);
byte[] arr = new byte[ms.Length];
ms.Position = 0;
ms.Read(arr, 0, (int) ms.Length);
ms.Close();
var base64str = Convert.ToBase64String(arr);
//关闭图片
image.Dispose();
return "data:image/jpg;base64," + base64str;
}