国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

csharp: 圖片字符間距

2019-11-17 02:32:40
字體:
來源:轉載
供稿:網友

csharp: 圖片字符間距

引用WINDOWS API:

        [DllImport("gdi32.dll", CharSet = CharSet.Auto)]        public static extern int SetTextCharacterExtra(IntPtr hdc, int nCharExtra);//圖片字符間距        [DllImport("gdi32.dll")]        public static extern bool DeleteObject(IntPtr handle);        [DllImport("gdi32.dll")]        public static extern IntPtr SelectObject(IntPtr hdc, IntPtr bmp);

.NET 2.0

/// <summary>        ///         /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        /// <param name="fontSpace"></param>        PRivate void pictureBox_Paint(object sender, PaintEventArgs e)        {            Graphics g = e.Graphics;            Font font = new Font("宋體", 12.0F);            Brush brush = Brushes.Red;            string text2 = "涂聚文";            IntPtr hdc = e.Graphics.GetHdc();            SetTextCharacterExtra(hdc, 16); // 設置字符間距               e.Graphics.ReleaseHdc(hdc);            e.Graphics.DrawString(text2, font, brush, 20, 25);//            //pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);        }

.NET 3.5以上:

 /// <summary>        /// 圖片的字符間距(只對中文,數字,字母,符號有效,在中文環(huán)境下,中文日文混排無效)        /// 涂聚文        /// .net3.0以上        /// </summary>        /// <param name="width">圖片寬度</param>        /// <param name="height">圖片高度</param>        /// <param name="space">字間距</param>        /// <param name="strtext">要顯示的文字</param>        /// <returns>圖片</returns>        Bitmap CreateImageString(int width, int height,int space ,string strtext)        {            Bitmap image = new Bitmap(width, height);            using (Graphics g = Graphics.FromImage(image))            {                //繪制圖片邊框                //g.DrawRectangle(Pens.Black, 0, 0, width - 1, height - 1);                Font font = new Font("宋體", 12.0F);                Brush brush = Brushes.Red;                //繪制設置了字符間距的輸出                DrawStringExtra(g, space, x =>                {                    x.DrawString(strtext, font, brush, 0, 2);                });            }            return image;        }        /// <summary>        ///         /// </summary>        /// <param name="g"></param>        /// <param name="nCharExtra"></param>        /// <param name="action"></param>        void DrawStringExtra(Graphics g, int nCharExtra, Action<Graphics> action)        {            IntPtr hdc = g.GetHdc();            SetTextCharacterExtra(hdc, nCharExtra);            try            {                using (Graphics g1 = Graphics.FromHdc(hdc))                {                    action(g1);                }            }            finally            {                SetTextCharacterExtra(hdc, 0);                g.ReleaseHdc(hdc);            }        }

調用:(可以應用于打印中)

 pictureBox1.Image = CreateImageStrin(100, 30, 10, "3315000"); 

.net 2.0自寫填空格來設置字間距,高版本有:Padding,PadRight,PadLeft

 /// <summary>        /// 字符填充空格,而從設置字符間距        /// 涂聚文        /// </summary>        /// <param name="str"></param>        /// <returns></returns>        public string SetPadstring(string str,int padwidth)        {            string s = string.Empty;            string m = string.Empty;            if (str.Length > 0)            {                char[] arr = str.ToCharArray();                foreach (char d in arr)                {                    //MessageBox.Show(d.ToString());                    m = m + d + PadRight(padwidth);                }            }            s = m;            return s;        }        /// <summary>        /// 填充空格        /// </summary>        /// <param name="totalWidth"></param>        /// <returns></returns>        public string PadLeft(int totalWidth)        {                   string s="";                if (totalWidth > 0)                {                    for (int i = 0; i < totalWidth; i++)                    {                        s =" "+ s  ;                    }                }                return s;       }        /// <summary>       /// 填充空格        /// </summary>        /// <param name="TotalWidth"></param>        /// <returns></returns>        public string PadRight(int TotalWidth)        {            string s = "";            if (TotalWidth > 0)            {                for (int i = 0; i < TotalWidth; i++)                {                    s = s + " ";                }            }            return s;        }

  

//測試                        string cs = "331500涂聚文";            //char[] arr = cs.ToCharArray();            //foreach (char d in arr)            //{            //    //MessageBox.Show(d.ToString());            //    m = m + d+PadRight(1);            //}            //MessageBox.Show(m);            MessageBox.Show(SetPadstring(cs, 1));

  


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 渑池县| 新乡市| 军事| 东台市| 崇阳县| 明光市| 南陵县| 榆社县| 秭归县| 岳普湖县| 安徽省| 务川| 周宁县| 苍溪县| 靖江市| 红桥区| 青州市| 紫阳县| 湄潭县| 武山县| 台江县| 车致| 隆林| 微山县| 蒙阴县| 全南县| 新巴尔虎左旗| 农安县| 三门县| 焉耆| 清徐县| 黑河市| 辉南县| 三亚市| 衢州市| 郸城县| 德钦县| 博湖县| 清河县| 广河县| 道孚县|