public void FromBitmapCutting(Bitmap fullBmp, Color mark) { fullBmp.MakeTransparent(fullBmp.GetPixel(0, 0)); Bitmap[] vertPieces = fullBmp.SplitVerticalByCol0(mark); vertPieces = vertPieces.Select(b => b.TrimTrailingRight(Color.Transparent)).ToArray(); /* * for (int i = 0; i < vertPieces.Length; ++i) * vertPieces[i].Save("vertPiece" + i + ".png"); */ Head = new NineContent(); Head.FromBitmapCutting(vertPieces[0], mark); Side = new A1A2A3(); Side.FromBitmapCutting(vertPieces[1].SliceX(1).SplitHorizontaByRow0(Color.Red)[0], mark); Waist = new NineContent(); Waist.FromBitmapCutting(vertPieces[2], mark); FootCap = new ABC(); FootCap.FromBitmapCutting(vertPieces[3].SliceX(2), mark); FootStack = new ABC(); FootStack.FromBitmapCutting(vertPieces[4].SliceX(2), mark); }
Bitmap AssembleA1A2A3(A1A2A3 a, int height) { height = Math.Max(a.MinHeight, height); Bitmap ret = new Bitmap(a.A1.Width, height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); using (Graphics g = Graphics.FromImage(ret)) { g.FastSettings(); g.Clear(Color.Transparent); g.DrawImageUnscaled(a.A1, 0, 0); g.DrawImage(a.A2, new Rectangle(0, a.A1.Height, a.A1.Width, height - (a.A1.Height + a.A3.Height))); g.DrawImageUnscaled(a.A3, 0, height - a.A3.Height); } return(ret); }
public void FromBitmapCutting(Bitmap fullBmp, Color mark) { fullBmp.MakeTransparent(fullBmp.GetPixel(0, 0)); Bitmap[] vertPieces = fullBmp.SplitVerticalByCol0(mark); vertPieces = vertPieces.Select(b => b.TrimTrailingRight(Color.Transparent)).ToArray(); /* for (int i = 0; i < vertPieces.Length; ++i) vertPieces[i].Save("vertPiece" + i + ".png"); */ Head = new NineContent(); Head.FromBitmapCutting(vertPieces[0], mark); Side = new A1A2A3(); Side.FromBitmapCutting(vertPieces[1].SliceX(1).SplitHorizontaByRow0(Color.Red)[0], mark); Waist = new NineContent(); Waist.FromBitmapCutting(vertPieces[2], mark); FootCap = new ABC(); FootCap.FromBitmapCutting(vertPieces[3].SliceX(2), mark); FootStack = new ABC(); FootStack.FromBitmapCutting(vertPieces[4].SliceX(2), mark); }
Bitmap AssembleA1A2A3(A1A2A3 a, int height) { height = Math.Max(a.MinHeight, height); Bitmap ret = new Bitmap(a.A1.Width, height, System.Drawing.Imaging.PixelFormat.Format32bppPArgb); using (Graphics g = Graphics.FromImage(ret)) { g.FastSettings(); g.Clear(Color.Transparent); g.DrawImageUnscaled(a.A1, 0, 0); g.DrawImage(a.A2, new Rectangle(0, a.A1.Height, a.A1.Width, height - (a.A1.Height+a.A3.Height))); g.DrawImageUnscaled(a.A3, 0, height - a.A3.Height); } return ret; }