public static List <Bitmap> ArrayImages(List <IEnumerable <Bitmap> > listOfLists, int align, Boolean dir, int pad) { List <Bitmap> mergedBitmaps = new List <Bitmap>(); foreach (List <Bitmap> myList in listOfLists) { mergedBitmaps.Add(ImageComposition.ArrayImages(myList, align, dir, pad)); } return(mergedBitmaps); }
//Ellipsoid Gradient as well //public static Bitmap CreateGradient2(Bitmap img, Color Cs, Color Ce, PointF s, PointF e, float factor) //{ // Bitmap canvas = MatchColorImage(img, Color.White); // canvas = ImageUtil.convert(canvas, PixelFormat.Format32bppArgb); // Graphics g = Graphics.FromImage(canvas); // Rectangle myRect = new Rectangle(0, 0, canvas.Width, canvas.Height); // myRect.Inflate(1, 1); // //LinearGradientMode. // LinearGradientBrush myBrush = new LinearGradientBrush(s, e, Cs, Ce); // Blend myBlend = new Blend(); // float[] relativeIntensities = { 0.0f, 0.5f, 1.0f }; // float[] relativePositions = { 0.0f, factor, 1.0f }; // myBlend.Positions = relativePositions; // myBlend.Factors = relativeIntensities; // myBrush.Blend = myBlend; // g.FillRectangle(myBrush, 0, 0, canvas.Width, canvas.Height); // return canvas; //} public static Bitmap CreateGradient(Bitmap img, List <Color> C) { List <Bitmap> GradientIMGs = new List <Bitmap>(); Bitmap gradientSize = new Bitmap((int)(img.Width / (C.Count - 1)), (int)(img.Height / (C.Count - 1))); for (int i = 0; i < C.Count - 1; i++) { GradientIMGs.Add(CreateGradient(gradientSize, C[i], C[i + 1], 0, 0.5f)); } Bitmap stitch = ImageComposition.ArrayImages(GradientIMGs, 1, true, 0); return(new Bitmap(stitch, img.Size)); }