Здравствуйте, пишу программу которая получает фотографию, и рисует ее на консоли, но поскольку приложение консольное, а как вы знаете что нельзя использовать Bitmap в консоли пришлось создать формочку. Все работает но когда дело доходит до вывода на консоль, то я получаю цвет пикселя в формате Color, а для изменения цвета консоли нужна ConsoleColor. Прошу помочь переконвертировать Color в ConsoleColor, спасибо!
Ответ
Немного погуглив я наткнулся на вот этот код:
Color BEGIN_COLOR = Color.Red;
ConsoleColor END_COLOR = ClosestConsoleColor(BEGIN_COLOR.R, BEGIN_COLOR.G, BEGIN_COLOR.B);
public static ConsoleColor ConvertColor(byte r, byte g, byte b)
{
ConsoleColor ret = 0;
double rr = r, gg = g, bb = b, delta = double.MaxValue;
foreach (ConsoleColor cc in Enum.GetValues(typeof(ConsoleColor)))
{
var n = Enum.GetName(typeof(ConsoleColor), cc);
var c = System.Drawing.Color.FromName(n == "DarkYellow" ? "Orange" : n);
var t = Math.Pow(c.R - rr, 2.0) + Math.Pow(c.G - gg, 2.0) + Math.Pow(c.B - bb, 2.0);
if (t == 0.0)
return cc;
if (t < delta)
{
delta = t;
ret = cc;
}
}
return ret;
}
Комментариев нет:
Отправить комментарий