//str_img_bg背景图片路径
using (System.Drawing.Image pickedImage = new System.Drawing.Bitmap(str_img_bg))
{
//str_img_head头像路径
using (StreamReader srhead = new StreamReader(str_img_head))
{
System.Drawing.Image img_head = System.Drawing.Image.FromStream(srhead.BaseStream, true);
img_head = KiResizeImage(img_head, width , height );//头像
//定位
Rectangle fromRhead = new Rectangle(0, 0, 56, 56);//宽高
Rectangle toRhead = new Rectangle(12, 56, 12, 56);//嵌入图片的位置 x,y坐标 和 宽高。
using (System.Drawing.Graphics pickedG = System.Drawing.Graphics.FromImage(pickedImage))
{
pickedG.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
pickedG.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//导入图片
pickedG.DrawImage(img_head, toRhead, fromRhead, System.Drawing.GraphicsUnit.Pixel);
//导入文字 emsize字体的全身大小(以磅值为单位)
//color字体颜色
//x,y在背景图上得x,y坐标
pickedG.DrawString(str_text, new Font("Microsoft YaHei", emsize), new SolidBrush(System.Drawing.ColorTranslator.FromHtml((color))), new PointF(x,y));
//jpg文件输出
ImageCodecInfo[] icis = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo i in icis)
{
if (i.MimeType == "image/jpeg")
{
ici = i;
}
}
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)90);
//保存图片
pickedImage.Save();
}
}
public static System.Drawing.Image KiResizeImage(System.Drawing.Image bmp, int newW, int newH, int Mode)
{
try
{
System.Drawing.Image b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b);
// 插值算法的质量
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
g.Dispose();
return b;
}
catch
{
return null;
}
}