public static Logo LoadImageFromFile(string imagePath) { using (var image = Image.Load <Rgba32>(imagePath)) { var fileInfo = new FileInfo(imagePath); var logo = new Logo(Path.GetFileNameWithoutExtension(imagePath), image.Width, fileInfo.LastWriteTime); NormalizeColors(image); for (int x = 0; x < image.Width; x++) { var previousColor = image[x, image.Height - 1]; var previousValue = image.Height - 1; for (int y = image.Height - 1; y >= 0; y--) { var color = image[x, y]; if (!IsSimilar(previousColor, color)) { logo.AddValue(x, previousValue - y, previousColor.ToHex()); previousColor = color; previousValue = y; } } logo.FinishColumn(x); } logo.Finish(); return(logo); } }