/// <summary>
    /// 图片叠加
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button1_Click(object sender, EventArgs e)
    {
        string path = Server.MapPath(@"image/20160102.png");
        System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path);
        System.Drawing.Image imgWarter = System.Drawing.Image.FromFile(Server.MapPath(@"Image/bear.png"));
        using (Graphics g = Graphics.FromImage(imgSrc))
        {
            g.DrawImage(imgWarter, new Rectangle(imgSrc.Width - imgWarter.Width, imgSrc.Height - imgWarter.Height,  imgWarter.Width,  imgWarter.Height),    0, 0, imgWarter.Width, imgWarter.Height, GraphicsUnit.Pixel);
        }

string newpath = Server.MapPath(@"Image/WaterMark.bmp");
        imgSrc.Save(newpath, System.Drawing.Imaging.ImageFormat.Jpeg);
        this.image_Water.ImageUrl = @"~/Image/WaterMark.bmp";
    }

/// <summary>
    /// 图片上嵌入文字
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void Button2_Click(object sender, EventArgs e)
    {
        string path = Server.MapPath(@"image/20160102.png");
        System.Drawing.Image imgSrc = System.Drawing.Image.FromFile(path);

using (Graphics g = Graphics.FromImage(imgSrc))
        {
            g.DrawImage(imgSrc, 0, 0, imgSrc.Width, imgSrc.Height);
            using (Font f = new Font("宋体", 20))
            {
                using (Brush b = new SolidBrush(Color.Red))
                {
                    string addText = "我的地盘我做主";   g.DrawString(addText, f, b, 100, 20);
                }
            }
        }
        string fontpath = Server.MapPath(@"image/FontMark.bmp");
        imgSrc.Save(fontpath, System.Drawing.Imaging.ImageFormat.Bmp);
        this.image_Water.ImageUrl = @"~/image/FontMark.bmp";

}

以下为文字生成图片//

/// <summary>
    /// 把文字转换才Bitmap
    /// </summary>
    /// <param name="text"></param>
    /// <param name="font"></param>
    /// <param name="rect">用于输出的矩形,文字在这个矩形内显示,为空时自动计算</param>
    /// <param name="fontcolor">字体颜色</param>
    /// <param name="backColor">背景颜色</param>
    /// <returns></returns>
    private Bitmap TextToBitmap(string text, Font font, Rectangle rect, Color fontcolor, Color backColor)
    {
        Graphics g;
        Bitmap bmp;
        StringFormat format = new StringFormat(StringFormatFlags.NoClip);
        if (rect == Rectangle.Empty)
        {
            bmp = new Bitmap(1, 1);
            g = Graphics.FromImage(bmp);
            //计算绘制文字所需的区域大小(根据宽度计算长度),重新创建矩形区域绘图
            SizeF sizef = g.MeasureString(text, font, PointF.Empty, format);

int width = (int)(sizef.Width + 1);
            int height = (int)(sizef.Height + 1);
            rect = new Rectangle(0, 0, width, height);
            bmp.Dispose();

bmp = new Bitmap(width, height);
        }
        else
        {
            bmp = new Bitmap(rect.Width, rect.Height);
        }

g = Graphics.FromImage(bmp);

//使用ClearType字体功能
        g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
        g.FillRectangle(new SolidBrush(backColor), rect);
        g.DrawString(text, font, Brushes.Black, rect, format);
        return bmp;
    }

protected void Button1_Click(object sender, EventArgs e)
    {
        string str = @"开始时间:2016-1-1" + "\r\n" + "结束时间:2017-1-1"+"\r\n"+ "沙尘天气等级:2"+"\r\n" + "PM10日均浓度最大值:2ug/m3"+"\r\n" + "影响范围:济南,青岛";
        //得到Bitmap(传入Rectangle.Empty自动计算宽高)
        Bitmap bmp = TextToBitmap(str, new Font("Arial", 16), Rectangle.Empty,Color.Black,Color.Wheat);

//保存到桌面save.jpg
        string directory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory);
        bmp.Save(directory + "\\save.png", ImageFormat.Png);
    }

转载于:https://www.cnblogs.com/wlming/p/10198213.html

C#实现图片叠加,图片上嵌入文字,文字生成图片的方法相关推荐

  1. C# 多个图片叠加,图片透明.

    下载该示例代码 文章出处:http://www.cnblogs.com/kaixin110/archive/2007/08/04/841827.html using System; using Sys ...

  2. java 操作图片 叠加图片 覆盖

    需求说明, 需要处理一个pdf文件, 将ocr识别出来的文字, 添加到word中, 将图片作为word背景图片, 也就实现了pdf转word功能. import java.awt.AlphaCompo ...

  3. [摘抄-Java-学习中]Java 图片叠加水印文字自动换行

    从网上找到了前辈们写的代码,然后优化整理下,实现了图片叠加水印,也就是文字叠加,然后再实现根据总文字的长度进行自动换行叠加文字 importjavax.imageio.ImageIO; importj ...

  4. iOS中给图片加水印或文字的几种方法

    最近项目中在做实名认证,要给图片添加水印,在网上找了一些博客,但是鱼龙混杂,首先说明下,有的博客说的方法实现了一下发现不可以.现在我就把我找的可以实现的几种方法贴在下边即可.以下方法我都亲自试过可以: ...

  5. Python PIL Image 4通道透明图片叠加(ARGB)

    安装Package pip install Pillow pip install numpy RGBA与RGB的区别 一般图片(Jpeg)的呈现都是以3通道RGB显示出来 from PIL impor ...

  6. android图像处理系列之六--给图片添加边框(下)-图片叠加

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前面介绍 ...

  7. android图像处理系列之六-- 给图片添加边框(下)-图片叠加

    前面介绍了一种用透明图片叠加的方式添加花边边框,下面将介绍另外一种图片叠加添加花边边框的方式.前面方法有一个缺点,就是做成PNG图片,图片体积会很大,不是一般的大,比同样的JPG大三倍多,如果项目可以 ...

  8. java图片叠加_[原创]JAVA中图片上叠加文字的方法

    --sunfruit JDK:1.3.x以上 功能:下面是一个简单在图片上面叠加文字的方法,有朋友如果有这方面的问题,就起个了解的作用 代码如下: import java.io.IOException ...

  9. C#图像处理:在图片上写字,文字位置居中问题

    1.给图片上添加文字,位置的位置居中.左对齐.右对齐等 Font LabelFont = new Font("宋体", 14, FontStyle.Bold); //设置字体.字号 ...

最新文章

  1. 一说“并发”就想到“多线程”,那就局限了
  2. [每日一题] 11gOCP 1z0-053 :2013-09-29 Flashback Data Archive ...................................6...
  3. Linux查看swap使用情况小脚本
  4. Boost:具有bind和weak_ptr的function_equal扥测试程序
  5. win10c语言错误,win10打开程序提示错误状态0xc0000020的原因和解决方法
  6. 2022春节档新片预售总票房达1.08亿
  7. Python基础--03
  8. phpeclipse中操作svn
  9. Unicode 字符编码表
  10. figure字体 latex_Latex字体大小和样式
  11. Redis - NX与XX
  12. Intel 至强E5/E7 V4 CPU与至强可扩展CPU性能对比表
  13. 【C语言】函数番外篇——递归
  14. 时间序列中Hurst指数的计算(python代码)
  15. DSP28035 CLA配置与调试步骤
  16. [0x7FF95C3B7860] ANOMALY: use of REX.w is meaningless (default operand size is 64)
  17. 加缪——人生到底有什么意义?生命的意义就是生命本身
  18. oracle查看时间戳函数,oracle数据库实现获取时间戳的无参函数
  19. ESP-IDF Kconfig文件配置
  20. Failed to connect to github.com port 443: Operation timed out

热门文章

  1. 一个屌丝程序猿的人生(一百一十一)
  2. 浪潮as5300技术方案_浪潮AS5300/5500G2-F 存储
  3. 一辈子坚持只做一件事
  4. react setState特性
  5. Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in lib
  6. 循环神经网络进阶-------自动写歌词
  7. 工业机器人物料分拣实训装置
  8. MATLAB中用Application Complier生成可执行文件的步骤及相关注意事项
  9. 阿里开源(EasyExcel)---导出EXCEL
  10. 乐动力推手表管家:Android Wear的中国化之路