protected byte[] AddWaterText(byte[] image1)
{
try
{
MemoryStream ms = new MemoryStream(image1);
System.Drawing.Image imgold = System.Drawing.Image.FromStream(ms);
Bitmap bitmap = new Bitmap(imgold);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.DrawImage(imgold, 0, 0, imgold.Width, imgold.Height);
Font f = new Font("宋体", 10);
Brush b = new SolidBrush(Color.Black);
string strText = "仅用于申请,他用均无效" + DateTime.Now.ToString();
graphics.DrawString(strText, f, b, 10, 10);
//bitmap.Save("D:\\img1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
MemoryStream ms1 = new MemoryStream(image1);
bitmap.Save(ms1, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] arr = new byte[ms1.Length];
ms1.Position = 0;
ms1.Read(arr, 0, (int)ms1.Length);
graphics.Dispose();
imgold.Dispose();
ms.Close();
ms1.Close();
bitmap.Dispose();
return arr;
}
catch (Exception ex)
{
LogHelper.WriteTxtErrorLog("生成图片水印失败" + ex.ToString());
return null;
}
在asp.net环境中,使用如上代码生成的带有水印图片,但是生成图片严重失真。
原图:
生成图片:
请问哪位大神指导原因,多谢了!