public Bitmap applyToImage(Bitmap image) { imgLowLvl.imagebits allbits = imgLowLvl.fastbits(image); int gradLen = gradientBits.a.Length - 1; for (int i = 0; i < allbits.r.Length; i++) { int average = (allbits.r[i] + allbits.g[i] + allbits.b[i]) / 3; allbits.r[i] = gradientBits.r[average.remapClamped(0, 255, 0, gradLen)]; allbits.g[i] = gradientBits.g[average.remapClamped(0, 255, 0, gradLen)]; allbits.b[i] = gradientBits.b[average.remapClamped(0, 255, 0, gradLen)]; allbits.a[i] = gradientBits.a[average.remapClamped(0, 255, 0, gradLen)]; } return(imgLowLvl.imageBitsToBitMap(allbits, image.Width, image.Height)); }
/// <summary> /// Loads an image gradient from disk /// </summary> /// <param name="path">The path to load image gradient from</param> public image_gradient(string path) { Bitmap source = new Bitmap(path); gradientBits = imgLowLvl.fastbits(source); }