zoukankan      html  css  js  c++  java
  • 【C#】把TextBox的文字转成图片

    通过系统Graphics绘图把文字绘制到位图上,然后显示或保存起来,这里用定义该函数

            /// <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;
            }

    把textbox1文本的内容输出为jpg图片

                //获取文本
                string text = this.textbox1.Text;
    
                //得到Bitmap(传入Rectangle.Empty自动计算宽高)
                Bitmap bmp = TextToBitmap(text, this.textbox1.Font, Rectangle.Empty, this.textbox1.ForeColor, this.textbox1.BackColor);
                
                //用PictureBox显示
                this.pbTextView.Image = bmp;
    
                //保存到桌面save.jpg
                string directory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.DesktopDirectory);
                bmp.Save(directory + "\\save.jpg", ImageFormat.Jpeg);
  • 相关阅读:
    Mix 10 上的asp.net mvc 2的相关Session
    Vista、XP SP2主流支持即将终止
    向Visual Studio 2010迁移的电子书
    ASP.NET MVC 2 转换工具
    Javascript瘦身工具AJAX Minifier
    微软公司的安全开发周期模型
    User Experience Kit
    乐在其中设计模式(C#) 迭代器模式(Iterator Pattern)
    [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
    [翻译]使用ASP.NET AJAX实现幻灯片效果
  • 原文地址:https://www.cnblogs.com/bomo/p/2932700.html
Copyright © 2011-2022 走看看