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);
  • 相关阅读:
    masonry中的make,remake,update
    内存划分五大区
    Java处理JPEG图片时,需要导入com.sun.image.codec.jpeg.JPEGImageEn,报错处理
    Xcode 8 控制台输出大量不用的log的问题解决&&NSLog失效的解决
    GCD系列 之(二): 多核心的性能
    GCD系列 之(一):基本概念和Dispatch Queue
    CADisplayLink使用中的循环引用问题的解决
    定时帧:NSTimer和CADisplayLink
    设置圆角的4种方式--引申出离屏渲染
    华为OLT 注册过程
  • 原文地址:https://www.cnblogs.com/bomo/p/2932700.html
Copyright © 2011-2022 走看看