BitmapW curves(BitmapW image, Point s, Point c1, Point c2, Point e) { Util.Bezier bezier = new Util.Bezier(s, c1, c2, e); int[] points = bezier.genColorTable(); float cr = 0, cg = 0, cb = 0, ca; int i = 0, j = 0, h = image.Height(), w = image.Width(); for (i = 0; i < w; i++) { for (j = 0; j < h; j++) { Color temp = image.GetPixel(i, j); cr = temp.R; cg = temp.G; cb = temp.B; ca = temp.A; cr = points[(int)cr]; cg = points[(int)cg]; cb = points[(int)cb]; image.SetPixel(i, j, Color.FromArgb((int)Util.clamp(ca, 0, 255), (int)Util.clamp(cr, 0, 255), (int)Util.clamp(cg, 0, 255), (int)Util.clamp(cb, 0, 255))); } } return(image); }
BitmapW curves(BitmapW image, Point s, Point c1, Point c2, Point e) { Util.Bezier bezier = new Util.Bezier(s, c1, c2, e); int[] points = bezier.genColorTable(); float cr = 0, cg = 0, cb = 0, ca; int i = 0, j = 0, h = image.Height(), w = image.Width(); for (i = 0; i < w; i++) { for (j = 0; j < h; j++) { Color temp = image.GetPixel(i, j); cr = temp.R; cg = temp.G; cb = temp.B; ca = temp.A; cr = points[(int)cr]; cg = points[(int)cg]; cb = points[(int)cb]; image.SetPixel(i, j, Color.FromArgb((int)Util.clamp(ca, 0, 255), (int)Util.clamp(cr, 0, 255), (int)Util.clamp(cg, 0, 255), (int)Util.clamp(cb, 0, 255))); } } return image; }