1. C# / Говнокод #13793

    +101

    1. 1
    if( a.GetPixel(i, k).Name.ToString().Substring(0,6)=="ff0404")

    http://www.cyberforum.ru/csharp-net/thread954611.html#post5057105

    Запостил: Qwertiy, 15 Сентября 2013

    Комментарии (38) RSS

    • Класс. Проверил код - тут ещё и баг, т. к. в Name возвращается не RRGGBB, а AARRGGBB, что означает, что для корректной работы нужно Substring(2, 6).
      Ответить
    • А он случаем не может вернуть в name какой нибудь "light-blue"?
      Ответить
      • Может: если написать Color.Red.Name, он вернёт "Red" :)
        Но в случае извлечения цветов из BitMap'а он так не делает...
        Ответить
        • > он так не делает
          Жаль. Было бы море батхертов у тех кто воспользовался кодом ;)

          > Name.ToString()
          А Name это разве не String?
          Ответить
          • > Жаль. Было бы море батхертов у тех кто воспользовался кодом ;)
            Я вначале подумал, что такой цвет ищется как раз чтобы на слова не наткнуться :)

            > А Name это разве не String?
            String, конечно :)
            Ответить
      • [color=LightBlue]"light-blue"[/color] вместо [color=#ff0404]"ff0404"[/color]? Навряд ли.

        P.S. Fail.
        Ответить
    • На следующей странице:
      > Сорри, хексы наизусть не учил...
      Ответить
      • > хексы наизусть
        0x00000000
        0x00000001
        0x00000002
        ...
        0xFFFFFFFF
        Ответить
        • Напомнило кеширование Integer
          Ответить
        • Напомните пожалуйста, что там идет после 0x00000002 ?))
          Ответить
          • 0x00000003 наверное, но я плохо помню. Так и не смог выучить наизусть ;(
            Ответить
        • Там про хексы цветов... Но в RGB превратить красный в FF0404 - шедевр *ROFL*
          Ответить
        • А где можно скачать полную таблицу? Очень хочется выучить.
          Скрипты не предлагать.
          Ответить
    • Почитал ту тему, -HPR- эпичное школоло.
      Ответить
      • Тарас, водичку в сторону... либо пиши код с примером, либо не умничай....
        Ответить
        • Код говно - нужно было через классы пилить
          Ответить
          • ColorComparator c = ColorComparatorFactory.GetInstance().CreateComparator(ColorComparator.DefaultSettings);
            if (c.compareForEquality(GetPixel(i, k).Name.ToString(), Color.FromString("ff0404"))) {
                ...
            }
            Ответить
            • Почему где-то поля с большой буквы, где-то — с маленькой? Этот зоопарк нормален для Шарпа?
              Ответить
              • > где-то поля с большой буквы, где-то — с маленькой
                Да я ж не шарпей, я крестовик и жабист. Вот и написал compareForEquality с мелкой.
                Ответить
                • И на форуме народ в большом количестве пишет то так, то так. Зачем вообще было отходить от общепринятых стандартов? Типичный Microsoft.
                  Ответить
              • Нет. Все с большой
                Ответить
              • А IDE об этом не предупреждает? Eclipse вон предупреждает, что еще один плюс для начинающих.
                Ответить
                • С какого перепуга ей об этом предупреждать? Писать же можно как угодно. А кому хочется охапку дурацких предупреждений, надо поставить StyleCop или ещё какое подобное расширение.
                  Ответить
                  • Resharper по умолчанию предупреждает, если нарушаешь общепринятые соглашения об именовании.
                    Ответить
                  • >Писать же можно как угодно.
                    Можно, но если ты захочешь когда-то работать с другими - лучше не нужно. Поначалу длясибя пойдет.
                    Ответить
                    • Для всех пойдёт, если только там не каша. Например, не начинаю имена у приватных переменных с _подчёркивания. И ещё некоторые ИсключенияБывают. А для себе VB.NET, а там нет смысла ЗаморачиватьсяСИменами, поскольку он case insensitive :)
                      Ответить
                      • > case insensitive
                        > ЗаморачиватьсяСИменами
                        Вот так из-за vb и delphi и рождаются мудаки, которые пишут somelongfunction вместо SomeLongFunction, и считают это нормальным. А потом еще и ругаются, что другие языки требуют от них соблюдения регистра...

                        Давайте еще поиск расстоянию Левенштейна прикрутим, чтобы samlongfuncteon тоже работало.
                        Ответить
                        • > которые пишут somelongfunction вместо SomeLongFunction
                          Сам же цитируешь пример
                          >> ЗаморачиватьсяСИменами
                          и при этом приводишь прямо противоположный!

                          Кстати, VS автоматически приводит имена в коде к тому регистру, в котором они объявлены.
                          И для шарпа подсказки тоже от регистра не зависят, так что надо только один раз нормально объявить, а потом всё будет хорошо. В отличие от джавовских сред, кстати - замучался в них с набором заглавных букв...
                          Ответить
                          • > Сам же цитируешь пример
                            Я его не цитирую как пример, а просто как фразу из вашего коммента. ЗаморачиватьсяСИменами понятно и читабельно. заморачиватьсясименами - нечитаемое говно.

                            > В отличие от джавовских сред, кстати - замучался в них с набором заглавных букв...
                            Есть такая проблема.

                            > замучался в них с набором заглавных букв
                            Через тернии к звездам ;)
                            Ответить
            • уже лучше)))
              Ответить
        • Прочитал тему, понял откуда это :) Надо запомнить фразу.
          Ответить
        • Либо сам напиши решение задачи 2+2=?, либо не строй из себя такого умного только потому, что мы не можем её решить.
          Ответить
    • Да там и повеселее места есть.
      http://www.cyberforum.ru/c-linux/thread933990.html
      http://www.cyberforum.ru/cpp-linux/thread25014.html
      Ответить
      • внимательно вникаем =
        if( a.GetPixel(i, k).Name.ToString().Substring(0,6)=="ff04 04")
        и ff0404 - 404, page not found.

        A нельзя было бы эту конструкцию упростить как-бы говоря, например методом возвращающим значение кода пикселя, без байды в ифе.

        типа:
        getPixelCode(i,k){
        return this.GetPixel(i, k).Name.ToString().Substring(0,6);
        }
        Ответить
        • Color someRedColor = Color.FromArgb(255, 4, 4);
          ...
          if(a.GetPixel(i, k) == someRedColor)
            ...
          Ответить
    • показать все, что скрытоИщу партнёра для секса. Есть своя квартира. Анал, орал, группа. Пиши мне на [email protected]
      Ответить
    • Мы дошли до развилки, где должны были расстаться. Было темно. Мы остановились.
      Ответить

    Добавить комментарий