Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2018, 01:17   #1
Влад00001111
Новичок
Джуниор
 
Регистрация: 19.09.2017
Сообщений: 1
Восклицание [C#] Алгоритм пилообразного контрастного масштабирования.

Возникли трудности! Нужно изменить так, чтобы пользователь вместо четверки вводил своё число, следовательно, if-ов должно быть 255%введённое число, но это же сложно. Ломаю голову, не могу понять, как сделать проще...

Код:
private Bitmap NotchedContrast(Bitmap bmp)
        {
            int width = bmp.Width;
            int height = bmp.Height;
            Color clr;
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    clr = bmp.GetPixel(x, y);
                    int g = clr.R;

                    if (g >= 0 && g <= 63) 
                    {
                        g = g * 4;
                    }
                    else if (g >= 64 && g <= 127)
                    {
                        g = (g - 64) * 4;
                    }
                    else if (g >= 128 && g <= 191)
                    {
                        g = (g - 128) * 4;
                    }
                    else
                    {
                        g = (g - 192) * 4;
                    }
                    bmp.SetPixel(x, y, Color.FromArgb(clr.A, g, g, g));
                }
            }
            return bmp;
        }
Изображения
Тип файла: jpg алгоритм.JPG (38.5 Кб, 56 просмотров)

Последний раз редактировалось Влад00001111; 15.12.2018 в 01:32.
Влад00001111 вне форума Ответить с цитированием
Старый 15.12.2018, 04:05   #2
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
По умолчанию

Цитата:
Сообщение от Влад00001111 Посмотреть сообщение
вместо четверки вводил своё число

Код:
private Bitmap NotchedContrast(Bitmap bmp, int SomeVar)
...
   g = g * SomeVar;
...
Конструкция ифоф читабельней так записывать:
Код:
     if (g < 64) 
{}
else if (g < 128) 
{}
else if (g < 192) 
{}
else if (g < 256) 
{}
Цитата:
if-ов должно быть 255%введённое число
Код:
int d = (255 % SomeVar);
int step = ...           // прикинуть какой шаг должен быть
for (int i = 0; i < d; i+= step )
 if (g < i)
 {
    g = (g - ...) * SomeVar;   // Надо поколдовать над уравнением, чего оно там должно делать я не понял.
    break;
 }
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация алгоритма масштабирования DENIS_POLOTSK C# (си шарп) 6 01.06.2012 20:01
Алгоритм масштабирования изображения(х1, х2, х3...) DENIS_POLOTSK C# (си шарп) 6 28.05.2012 21:35
коэффициент масштабирования zolman Помощь студентам 0 13.04.2011 11:44
Алгоритм масштабирования Alex Cones Свободное общение 4 25.05.2010 16:02