/* * private void GaussMultStream(Image bmp, int strcnt) * { * //TODO ToGrayMultiStream * } * * private void SobelMultStream(Image bmp, int strcnt) * { * //TODO ToGrayMultiStream * } */ /// <summary> /// Многопоточная операция. Выполняет преобразование в формат "оттенки серого". /// </summary> /// <param name="ob">Данные для выполнения операции (класса <see cref="ToGrayParam"/>).</param> private void ToGray(object ob) { Bitmap a = (ob as ToGrayParam).Bmp; @Dictionary <int, Bitmap> res = (ob as ToGrayParam).Res; for (int i = 0; i <= a.Width - 1; i++) { for (int ii = 0; ii <= a.Height - 1; ii++) { Color c = a.GetPixel(i, ii); byte y = Border(Options.GrayConvertRCof * c.R + Options.GrayConvertGCof * c.B + Options.GrayConvertBCof * c.G); c = Color.FromArgb(y, y, y); a.SetPixel(i, ii, c); } } res[Thread.CurrentThread.ManagedThreadId] = a; }
/// <summary> /// Создает новый экземпляр класса <see cref="ToGrayParam"/>. /// </summary> /// <param name="b">Изображение для выполнения операций.</param> /// <param name="res">Ссылка на словарь остальных значений.</param> public ToGrayParam(Bitmap b, @Dictionary <int, Bitmap> res) { Bmp = b; Res = res; }