/// <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; } } }
/// <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); }
/// <summary> /// 新建画布并设置背景 /// </summary> /// <param name="bitmap"></param> internal Canvas(ImageBuilder bitmap) { Background = bitmap; }
/// <summary> /// 设置画布背景 /// </summary> /// <param name="bitmap"></param> public void SetBitmap(ImageBuilder bitmap) { Background = bitmap; }