NET 图片添加文字后生成图片

山鹰 2015-04-14 11:55:24
最近做微信商家授权系统,底部的模版图已经做好,要在上面读取数据库的数据添加到图片上,然后重新生成图片!小弟不知道用NET如何实现,求高手指教!小弟感激不尽!类似下图
...全文
361 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sss_nalaidhaor 2015-04-27
  • 打赏
  • 举报
回复
在图片上添加水印图片 //触发水印图片事件 protected void imgBtnPicSet_Click(object sender, ImageClickEventArgs e) { if (ListBox1.Items.Count > 0) { //判断在列表框中所选择的单个图片 if (Session["pic"] != "") { //获取所要添加水印文字的图片路径 string path = Server.MapPath("File") + "\\" + Session["pic"].ToString(); //调用WaterLetter实现水印图片 WaterMark(path); //调用自定义getUrl()预览水印后的图片 getUrl(); } else { Response.Write("<script>alert('请选择列表中一个图片!')</script>"); } } }//codego.net/11/1/1/ //设置水印图片功能 public void WaterMark(string path) { //获取要水印的图片 Bitmap bmp = new Bitmap(HttpContext.Current.Server.MapPath(".") + "/Alex.gif"); //设置水印图片的透明度 ImageAttributes imageAttr = new ImageAttributes(); imageAttr.SetColorKey(bmp.GetPixel(20, 20), bmp.GetPixel(20, 20)); //获取要设置水印图片的扩展名 string extension = Path.GetExtension(path).ToUpper(); //设置临时图片名称 string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString(); //初始化要加水印的图片 System.Drawing.Image image = System.Drawing.Image.FromFile(path); //初始化水印图片 System.Drawing.Image copyImage = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath(".") + "/Alex.gif"); //创建绘图区域 Graphics g = Graphics.FromImage(image); //将水印图片,合成到指定图片上 g.DrawImage(copyImage, new Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel, imageAttr); g.Dispose(); //保存加水印过后的图片,删除原始图片 string newPath = HttpContext.Current.Server.MapPath(".") + "/" + fileName + "_new" + extension; //保存设置完成后的水印图片到临时位置 image.Save(newPath); image.Dispose(); // File.Copy(newPath, path, true); //删除水印 if (File.Exists(newPath)) { //删除临时存储的图片 File.Delete(newPath); } }
山鹰 2015-04-23
  • 打赏
  • 举报
回复
引用 1 楼 tcmakebest 的回复:
图像上叠加文字不复杂, 主要是使用一系列的类似DrawString绘图方法, 主要的难点在于调整文字大小和位置.
        /// <summary>
        /// 图像添加文字
        /// </summary>
        /// <param name="srcFile">源文件</param>
        /// <param name="tarFile">目标文件</param>
        /// <param name="desc">文字内容</param>
        public void PictureAddText(string srcFile, string tarFile, string desc)
        {
            Bitmap bmp = new Bitmap(srcFile);
            Graphics g = Graphics.FromImage(bmp);
            Font picFont = new Font(FontFamily.GenericSerif, 16f * 72f / g.DpiX, FontStyle.Bold);
            g.DrawString(desc, picFont, new SolidBrush(Color.White), 9f, 9f);
            g.DrawString(desc, picFont, new SolidBrush(Color.Red), 8f, 8f);
            g.Dispose();
            bmp.Save(tarFile, System.Drawing.Imaging.ImageFormat.Jpeg);
            bmp.Dispose();
        }
还是不会昂 能不能详细点呢 三个参数 需要生成到图片上
  • 打赏
  • 举报
回复
DrawString
tcmakebest 2015-04-14
  • 打赏
  • 举报
回复
图像上叠加文字不复杂, 主要是使用一系列的类似DrawString绘图方法, 主要的难点在于调整文字大小和位置.
        /// <summary>
        /// 图像添加文字
        /// </summary>
        /// <param name="srcFile">源文件</param>
        /// <param name="tarFile">目标文件</param>
        /// <param name="desc">文字内容</param>
        public void PictureAddText(string srcFile, string tarFile, string desc)
        {
            Bitmap bmp = new Bitmap(srcFile);
            Graphics g = Graphics.FromImage(bmp);
            Font picFont = new Font(FontFamily.GenericSerif, 16f * 72f / g.DpiX, FontStyle.Bold);
            g.DrawString(desc, picFont, new SolidBrush(Color.White), 9f, 9f);
            g.DrawString(desc, picFont, new SolidBrush(Color.Red), 8f, 8f);
            g.Dispose();
            bmp.Save(tarFile, System.Drawing.Imaging.ImageFormat.Jpeg);
            bmp.Dispose();
        }
kongwu525 2015-04-14
  • 打赏
  • 举报
回复
这和添加水印原理差不多吧

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧