zoukankan      html  css  js  c++  java
  • C#-string生成图片

       public static Bitmap GetLink(string Wordstr)
            {
                #region older
                //arial
                //StrForImg sf = new StrForImg();
                //sf.Adaptable = false;
    
    
                //sf.BackgroundImage = "";
                //sf.BgColor = Color.White;
                //sf.FontFamily = "arial";
                //sf.FontSize = 10;
                //sf.FontStyle = FontStyle.Regular;
                //sf.Height = 15;
                //sf.Text = Wordstr;
                //sf.Width = Wordstr.Length * 10;
                //sf.ResultImage = "c:\a.bmp";
                //sf.Top = 0;
                //sf.Left = 0;
    
    
                //Color bl = Color.Green;
    
    
                //sf.Alpha = bl.A;
                //sf.Red = bl.R;
                //sf.Green = bl.G;
                //sf.Blue = bl.B;
                //try
                //{
                //    return sf.Create();
                //}
                //catch { return null; }
                #endregion
    
    
                try
                {
                    Size TextSize = TextRenderer.MeasureText(Wordstr, new Font(new FontFamily("Arial"), 10, FontStyle.Regular));
                    Bitmap b = StrForImg_New.DrawTextBmp(Wordstr, new Font(new FontFamily("Arial"), 10, FontStyle.Regular), Color.FromArgb(0,128,0), TextSize, 0, 0, 0, 0);
                    b = StrForImg_New.ClearWhite(b);
                    return b;
                }
                catch { return null; }
            }
    
    
    
    
    public static Bitmap DrawTextBmp(string ch, Font font, Color color, Size TextSize, int x, int y, int w, int h)
            {
                //创建此大小的图片
                Bitmap bmp = new Bitmap(TextSize.Width - x, TextSize.Height - y);
                //使用GDI+绘制
                Graphics g = Graphics.FromImage(bmp);
                bmp = new Bitmap(TextSize.Width - x, TextSize.Height - y, PixelFormat.Format64bppArgb);
                g = Graphics.FromImage(bmp);
                g.Clear(Color.White);
    
    
                g.DrawString(ch, font, new SolidBrush(color), new PointF(w, h));
                g.Save();
                g.Dispose();
                //返回图像
                return bmp;
            }
    //去白边
            public static Bitmap ClearWhite(Bitmap bm)
            {
                int y_l = 0;//左边
                int y_r = 0;//右边
                int i_h = 0;//上边
                int i_d = 0;//下边
                #region 计算----
                for (int i = 0; i < bm.Width; i++)
                {
                    for(int y=0;y<bm.Height;y++)
                    {
                        if (bm.GetPixel(i, y).R != 255 || bm.GetPixel(i, y).B != 255 || bm.GetPixel(i, y).G != 255)
                        {
                            y_l = i;
                            goto yl;
                        }
                    }
                }
                yl:
                for (int i = 0; i < bm.Width; i++)
                {
                    for (int y = 0; y < bm.Height; y++)
                    {
                        if (bm.GetPixel(bm.Width - i - 1, y).R != 255 || bm.GetPixel(bm.Width - i - 1, y).B != 255 || bm.GetPixel(bm.Width - i - 1, y).G != 255)
                        {
                            y_r = i;
                            goto yr;
                        }
                    }
                }
                yr:
                for (int i = 0; i < bm.Height; i++)
                {
                    for (int y = 0; y < bm.Width; y++)
                    {
                        if (bm.GetPixel(y, i).R != 255 || bm.GetPixel(y, i).B != 255 || bm.GetPixel(y, i).G != 255)
                        {
                            i_h = i;
                            goto ih;
                        }
                    }
                }
                ih:
                for (int i = 0; i < bm.Height; i++)
                {
                    for (int y = 0; y < bm.Width; y++)
                    {
                        if (bm.GetPixel(y, bm.Height - i - 1).R != 255 || bm.GetPixel(y, bm.Height - i - 1).B != 255 || bm.GetPixel(y, bm.Height - i - 1).G != 255)
                        {
                             i_d = i;
                             goto id;
                        }
                    }
                }
            id:
                #endregion
    
    
                //创建此大小的图片
                Bitmap bmp = new Bitmap(bm.Width - y_l - y_r, bm.Height - i_h - i_d);
                Graphics g = Graphics.FromImage(bmp);
                //(new Point(y_l, i_h), new Point(0, 0), new Size(bm.Width - y_l - y_r, bm.Height - i_h - i_d));
                Rectangle sourceRectangle = new Rectangle(y_l, i_h, bm.Width - y_l - y_r, bm.Height - i_h - i_d);
                Rectangle resultRectangle = new Rectangle(0, 0, bm.Width - y_l - y_r, bm.Height - i_h - i_d);
                g.DrawImage(bm, resultRectangle, sourceRectangle, GraphicsUnit.Pixel);
                return bmp;
            }

  • 相关阅读:
    C/C++ string.h头文件小结
    linux根据进程pid查看进程详细信息
    《mysql必知必会》读书笔记
    安装vim with python
    vim正则表达式小结
    C语言指针篇(二)多级指针
    C语言指针篇(一)指针与指针变量
    递归函数
    lan口和wan口的配置
    C语言基础篇(三) 指针
  • 原文地址:https://www.cnblogs.com/csnd/p/12062189.html
Copyright © 2011-2022 走看看