//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //outline shit private static Image makeOutline(Image image, Color_Editor Outline) { Bitmap newImage = new Bitmap(image.Width, image.Height); List <float> OLConvertedPositions = new List <float>(); foreach (int position in Outline.Positions[0]) { OLConvertedPositions.Add((float)(position / 100.00)); } Bitmap OutlineGrad = Color_Editor.getGradientBox(image.Width, image.Height, Outline.Colors[0], OLConvertedPositions, Outline.Angles[0]); for (int i = 0; i < image.Width; i++) { for (int j = 0; j < image.Height; j++) { Color pixel = ((Bitmap)image).GetPixel(i, j); if (pixel.A == 255) { newImage.SetPixel(i, j, pixel); } else { if (CheckAdjacent(i, j, (Bitmap)image)) { newImage.SetPixel(i, j, OutlineGrad.GetPixel(i, j)); } } } } return(newImage); }
private static Bitmap editColor(Image image, Color_Editor Text, Color_Editor Outline, int index, Image BaseImage) { List <float> ConvertedPositions = new List <float>(); foreach (int position in Text.Positions[index]) { ConvertedPositions.Add((float)(position / 100.00)); } List <float> OLConvertedPositions = new List <float>(); foreach (int position in Outline.Positions[0]) { OLConvertedPositions.Add((float)(position / 100.00)); } Bitmap baseGrad = Color_Editor.getGradientBox(image.Width, image.Height, Text.Colors[index], ConvertedPositions, Text.Angles[index]); Bitmap OutlineGrad = Color_Editor.getGradientBox(image.Width, image.Height, Outline.Colors[0], OLConvertedPositions, Outline.Angles[0]); for (int j = 0; j < image.Height; j++) { for (int i = 0; i < image.Width; i++) { Color pixel = ((Bitmap)image).GetPixel(i, j); if (pixel.A == 255) { double x = pixel.R / 255.00; Color ImageColor = ((Bitmap)BaseImage).GetPixel(i, j); Color baseColor = baseGrad.GetPixel(i, j); Color OutlineColor = OutlineGrad.GetPixel(i, j); pixel = BlendColors(x, ImageColor, baseColor, OutlineColor); ((Bitmap)image).SetPixel(i, j, pixel); } } } return((Bitmap)image); }