예제 #1
0
        /// <summary>
        /// 将另一个图片绘制到当前图片的指定位置
        /// </summary>
        /// <param name="imageBuilder">另一个图片的构建器</param>
        /// <param name="left">左坐标</param>
        /// <param name="top">上坐标</param>
        public override void Draw(ImageBuilder imageBuilder, int left, int top)
        {
            byte[] simageByte = Data;
            byte[] dimageByte = imageBuilder.Data;

            int dpixelWidth  = imageBuilder.Width;
            int dpixelHeight = imageBuilder.Height;

            int index   = 0;
            int doffset = 0;

            for (int v = 0; v < dpixelHeight; v++)
            {
                for (int h = 0; h < dpixelWidth; h++)
                {
                    if (dimageByte[doffset + 3] == 0)   //透明色,不处理
                    {
                        doffset += 4;
                        continue;
                    }

                    index = (Width * (v + top) + (h + left)) * 4;

                    if (index < 0)
                    {
                        doffset += 4;
                        continue;
                    }
                    else if (index >= simageByte.Length - 3)
                    {
                        break;
                    }

                    simageByte[index]     = dimageByte[doffset];
                    simageByte[index + 1] = dimageByte[doffset + 1];
                    simageByte[index + 2] = dimageByte[doffset + 2];
                    simageByte[index + 3] = dimageByte[doffset + 3];

                    doffset += 4;
                }
            }
        }
예제 #2
0
 /// <summary>
 /// 绘制图像
 /// </summary>
 /// <param name="bitmap"></param>
 /// <param name="left"></param>
 /// <param name="top"></param>
 public void DrawBitmap(ImageBuilder bitmap, int left, int top)
 {
     Background.Draw(bitmap, left, top);
 }
예제 #3
0
 /// <summary>
 /// 新建画布并设置背景
 /// </summary>
 /// <param name="bitmap"></param>
 internal Canvas(ImageBuilder bitmap)
 {
     Background = bitmap;
 }
예제 #4
0
 /// <summary>
 /// 设置画布背景
 /// </summary>
 /// <param name="bitmap"></param>
 public void SetBitmap(ImageBuilder bitmap)
 {
     Background = bitmap;
 }