示例#1
0
        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);
        }
示例#2
0
        //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));
        }