/// <summary>
/// 图像生成辅助类
/// </summary>
public class ImageHelper
{
public static Bitmap GetDeskBitMap(string url, string name, StringBuilder sb)
{
try
{
var xiaochengxuBitmap = UrlToImage(url);
FontFamily fontFamily = new FontFamily("微软雅黑");
Font font = new Font(fontFamily, 40);
System.Drawing.Bitmap backgroundImage = Resource.desk;
var res = DrawText(backgroundImage, xiaochengxuBitmap, name, font, Color.White, 260);
return res;
}
catch (Exception ex)
{
sb.Append(ex.ToString());
return null;
}
}
public static Bitmap UrlToImage(string url)
{
WebClient mywebclient = new WebClient();
byte[] Bytes = mywebclient.DownloadData(url);
using (MemoryStream ms = new MemoryStream(Bytes))
{
Image tTempBitmap = Image.FromStream(ms);
return (Bitmap)tTempBitmap;
}
}
public static Bitmap DrawText(Bitmap original, Bitmap erweima, string text, Font font, Color color, int height)
{
Bitmap result = new Bitmap(original.Width, original.Height);
using (Graphics graphics = Graphics.FromImage(result))
{
graphics.DrawImage(original, 0, 0);
int x = (original.Width - erweima.Width) / 2;
int y = (int)original.Height * 1 / 7 + (original.Height * 5 / 6 - erweima.Height) / 2;
graphics.DrawImage(erweima, new Rectangle(x, y, erweima.Width, erweima.Height));
Rectangle rect = new Rectangle(0, original.Height - height, original.Width, height);
using (SolidBrush brush = new SolidBrush(color))
{
using (StringFormat format = new StringFormat())
{
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
graphics.DrawString(text, font, brush, rect, format);
}
}
}
return result;
}
}