Пример #1
0
 public void 拷贝(文印参数 参数)
 {
     文本      = 参数.文本;
     X百分比    = 参数.X百分比;
     Y百分比    = 参数.Y百分比;
     大小百分比   = 参数.大小百分比;
     透明度     = 参数.透明度;
     字体      = 参数.字体;
     颜色      = 参数.颜色;
     旋转角度    = 参数.旋转角度;
     粗体      = 参数.粗体;
     斜体      = 参数.斜体;
     划线      = 参数.划线;
     除线      = 参数.除线;
     横向复制个数  = 参数.横向复制个数;
     纵向复制个数  = 参数.纵向复制个数;
     横向百分比间距 = 参数.横向百分比间距;
     纵向百分比间距 = 参数.纵向百分比间距;
     所属设置页   = 参数.所属设置页;
 }
Пример #2
0
        private static void 加文印(Graphics g水印图, 文印参数 参数, int 图宽, int 图高)
        {
            if (参数.文本.Length == 0)
            {
                return;
            }
            Graphics g, g空 = g水印图;
            Bitmap   空背景 = null;

            if (参数.透明度波动 > 0)
            {
                空背景 = new Bitmap(图宽, 图高, PixelFormat.Format32bppArgb);
                g空  = Graphics.FromImage(空背景);
                g   = g空;
            }
            else
            {
                g = g水印图;
            }

            PointF 文本中心点 = 参数.中心点 = new PointF(图宽 * 参数.X百分比, 图高 * 参数.Y百分比);
            string 待绘文本  = 日期时间替换(参数.文本);
            int    短边长度  = 图宽 >= 图高 ? 图高 : 图宽;
            float  字体大小  = 短边长度 * 参数.大小百分比 * 0.8f;

            if (字体大小 < 11)
            {
                字体大小 = 11;
            }
            Font   字体   = new Font(参数.字体, 字体大小, 参数.粗体 | 参数.斜体 | 参数.划线 | 参数.除线);
            SizeF  文本大小 = 参数.大小 = g.MeasureString(待绘文本, 字体);
            PointF 文本位置 = new PointF(-文本大小.Width / 2, -文本大小.Height / 2);
            Brush  画刷   = new SolidBrush(Color.FromArgb(参数.透明度, 参数.颜色));
            float  横间距  = 参数.横向百分比间距 * 图宽;

            横间距 = 横间距 > 7 ? 横间距 : 7;
            float 纵间距 = 参数.纵向百分比间距 * 图高;

            纵间距 = 纵间距 > 7 ? 纵间距 : 7;



            if (参数.横向复制个数 > 0 && 参数.纵向复制个数 > 0)
            {
                for (int i = 0; i <= 参数.纵向复制个数; i++)
                {
                    for (int j = 0; j <= 参数.横向复制个数; j++)
                    {
                        PointF 新文本中心点 = new PointF(文本中心点.X + 横间距 * j, 文本中心点.Y + 纵间距 * i);
                        画文本(g, 新文本中心点, 参数.旋转角度, 待绘文本, 字体, 画刷, 文本位置);
                    }
                }
            }
            else
            {
                画文本(g, 文本中心点, 参数.旋转角度, 待绘文本, 字体, 画刷, 文本位置);
                if (参数.横向复制个数 > 0)
                {
                    for (int i = 1; i <= 参数.横向复制个数; i++)
                    {
                        文本中心点 = new PointF(文本中心点.X + 横间距, 文本中心点.Y);
                        画文本(g, 文本中心点, 参数.旋转角度, 待绘文本, 字体, 画刷, 文本位置);
                    }
                }
                else if (参数.纵向复制个数 > 0)
                {
                    for (int i = 1; i <= 参数.纵向复制个数; i++)
                    {
                        文本中心点 = new PointF(文本中心点.X, 文本中心点.Y + 纵间距);
                        画文本(g, 文本中心点, 参数.旋转角度, 待绘文本, 字体, 画刷, 文本位置);
                    }
                }
            }

            if (参数.透明度波动 > 0)
            {
                图像.颜色随机化(空背景, 参数.透明度波动);
                g水印图.DrawImage(空背景, 0, 0);
                g空.Dispose();
                空背景.Dispose();
            }
        }
Пример #3
0
 public 文印设置Tabpage(文印参数 参数)
 {
     本页参数      = 参数;
     BackColor = Color.White;
     Text      = 参数.文本.Length > 4 ? 参数.文本.Substring(0, 4) : 参数.文本;
 }