• C# 图像处理(六)—— 添加文字


    添加文字的实现我个人认为是不涉及到对像素的处理的,也就是说没有像之前四个图像处理的例子那样,利用同样的原理去实现。而对于添加文字那里,主要是通过利用平时经常接触到的设置文字样式对话框来完成其中的一部分。算了,还是贴上代码会更有灵感去写东西,我已经开始觉得自己在语无伦次了。

       在图片中添加文字,用户所面对的过程就是,先在一个TextBox控件里面填写想要添加的文字,再利用一个Button控件来设置一下文字的样式,最后点击图片想加入文字的地方,基本的流程就是这样。

       好了,对于一个程序员来说,就要先利用一个TextBox和一个Button控件,在Button的事件里添加类似的代码,

        fontDialog.ShowColor = true;//显示颜色选择对话框
        if (this.fontDialog.ShowDialog() == DialogResult.OK)
        {//当设置好了字体的某些属性之后
            textBox.Font = fontDialog.Font;//设置文字字体
            textBox.ForeColor = fontDialog.Color;//设置文字的字体颜色

        }

        这样就算是完成了字体设置的部分,当设置完之后,TextBox里面的文字就是你所设置了的样式的文字了。

        接下来就是通过触发鼠标的MouseUp事件来完成添加文字的操作,实现代码类似如下,

        /// <summary>
        /// 在图片中添加文字
        /// </summary>

        private void pictureBox_MouseUp(object sender, MouseEventArgs e)
        {

            if (this.pictureBox.Image.Width < 1)
            {//基本的判断还是要的

                return;
            }
            Graphics gra = Graphics.FromImage(this.pictureBox.Image);//要进行处理的图片对象
            SolidBrush brush = new SolidBrush(this.textBox.ForeColor);//初始化画笔
            gra.DrawString(this.textBox.Text, this.textBox.Font, brush, e.X, e.Y);//处理图片
            this.pictureBox.Refresh();//对显示图片的容器里面的内容进行刷新,以便及时显示添加的文字
        }

        原理就差不多就这些了,这些代码是我程序里面的部分源代码,所以是没有经过测试的,不过应该是没有什么问题的,除了少加了命名空间外,图像处理的代码通常都是要添加using System.Drawing;的。

  • 相关阅读:
    Serverless 的初心、现状和未来
    父亲的茶杯
    子慕谈设计模式系列(三)
    子慕谈设计模式系列(二)——设计模式六大原则
    子慕谈设计模式系列(一)
    初入angular4——实际项目搭建总结
    欲练JS,必先攻CSS——前端修行之路
    运用google-protobuf的IM消息应用开发(前端篇)
    “倔驴”一个h5小游戏的实现和思考(码易直播)——总结与整理
    【猿分享第10期】微信小程序Meetup扫盲专场回顾(转载)
  • 原文地址:https://www.cnblogs.com/luluping/p/2585557.html
Copyright © 2020-2023  润新知