![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Что то не могу додуматься как увеличить скорость выполнения операции.
В коде я прохожу каждый пиксель и проверяю его на цвет, если не тот что надо меняю на нужный. Из кода становиться понятно что он по очереди проходит высоту изображения. Как сделать так что бы по одному запуску пошло выполнение сразу на всю высоту, тем самым увелив скорость выполнения операции.
upd. Добавил строчку sleep(1); Проц перестало грузить но выполняться стало гораздо медленее Это сообщение отредактировал(а) Canyon - 14.3.2012, 10:27 |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Вот это очень сомнительно! Ибо никакой "высоты" (Height) в коде нет. Есть только "ширина" (Width). -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
точно. Но Вот только не правильно и правильно оно работатет одинаково и как надо
|
|||
|
||||
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Сегодня всячески пытался сделать эту задачу решаемой, но мозгов не хватило.
Подставил цикл while тогда он прочто проходит один раз высоту. Что то не правильно я написал и понять не могу, ПОМОГИТЕ ХОТЬ ВЫ! |
|||
|
||||
| Illusion Dolphin |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1198 Регистрация: 3.5.2003 Репутация: 36 Всего: 63 |
Может стоит прорисовку из цикла вынести?
Ещё поищи по TBitmap.Scanline - тоже будет быстрее чем Canvas. -------------------- В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен. Шифрование и организация фотографий - Photo Database 4.5 |
|||
|
||||
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Прорисовку я вставил что бы разобраться как работать будет. В дальнейшем я ее выкину конечно совсем.
Про ScanLine слышал и немного читал, но что то для меня пока это темный лес. МБ не то читал. Мне не дает покоя эта задача. Уже и о циклах пошел заново читать, но что то не получаеться. |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Лучше про scanline почитай. там все просто. Scanline[Index] (где Index от 0 до Height-1) - возвращает указатель на строку в битмапе. В каждой строке width элементов. Размер элемента зависит от битности изображения. Каждый элемент кодирует цвет соотв. пикселя. При PixelFormat = pf24bit каждый пиксель может быть описан структурой TRGBTriple (PRGBTriple). В общем направление указал - разбирайся) з.ы. на закуску небольшой пример:
Это сообщение отредактировал(а) MetalFan - 12.3.2012, 23:02 -------------------- There are always someone smarter than you... |
|||
|
||||
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Со ScanLine сейчас разбераюсь, но в принципе скорость уже и на Pixels устраивает, колгда работает без прорисовки.
Уже интересно про сканлайн стало, так что придеться изучить. А вот не ужели все таки нельзя запустить цикл так как я хотел? |
|||
|
||||
| northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
А как хотел? Так:
P.S. неужели пишется слитно. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
| Leklerk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
| Canyon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 11.3.2012 Репутация: нет Всего: нет |
Отредактировал первое сообщение. Не думал что на форуме через такое долгое время можно отредактировать сообщение.
Нет не так конечно хотел. Хочу что бы замена пикселей пошла сразу на всю Height. P.S. это опечатка. Ой извините. Только сейчас заметил что куча ошибок в русском тексте. |
|||
|
||||
| Leklerk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
И не отклоняемся от темы. Тут не школа с углубленным изучением русского языка. -------------------- There are always someone smarter than you... |
|||
|
||||
| Leklerk |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 31.7.2009 Где: Санкт-Петербург Репутация: нет Всего: нет |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |