c#均匀间隔字符

若要生成如下形式的字符,即空白与字符均匀相间的样式。如条码下方文字等应用场景,可以这么做。

条码.png

总宽度为待绘制区域的总宽度;我们可以得出这样的规则

$$ 空白数=字符数+1 $$

$$ 空白数\times空白宽+字符数\times 字符宽=总宽度 $$

$$ 空白数\times空白宽+总字宽=总宽度 $$

$$ 空白宽=(总宽度-总字宽)\div(字符数+1) $$

由此可以得到每个字符的起始位置

$$ n0(空白宽,0) $$

$$ n1(空白宽\times2+字宽0,0) $$

$$ \cdots $$

$$ nm(空白宽\times m+字宽m,0) $$

这样就可以均匀地将字符绘制在需要的位置了。

    /// <summary>
    /// 截全屏并保存成图片
    /// </summary>
    public void getScreen()
    {
        //Image myImage = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);//截取整个屏幕
        Image myImage = new Bitmap(Screen.PrimaryScreen.WorkingArea.Right, Screen.PrimaryScreen.WorkingArea.Bottom);//截取整个工作区
        
        Graphics g = Graphics.FromImage(myImage);

        g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height));
        g.ReleaseHdc(g.GetHdc());

        myImage.Save(@"C:\Users\luzhanhui\Desktop\a.jpg");
        
    }