|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.09.2010, 20:02 | #1 |
Пользователь
Регистрация: 29.11.2009
Сообщений: 44
|
BMP в массив
Нужно BMP-изображение загнать в массив для дальнейшей работы с ним
получился вот такой код, только никак не могу найти ошибку, подскажите Код:
Process is not accessible Thread Exit: Thread ID: 3852. Process Project1.exe (3536) вот юнит с BMP - изображением http://www.megaupload.com/?d=XX55QNQD |
16.09.2010, 20:21 | #2 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
Ну есть же поиск по форуму..... Например воть: http://www.programmersforum.ru/showthread.php?t=110388
И "OriginalBitmap.Free; ProcessedBitmap.Free;" не забываем при Destroy формы... * З.Ы. Никогда не понимал зачем все делают какое-то [0..PixelCountMax-1]... P.S. Не проверял, но на вскидку - где например "ProcessedBitmap.PixelFormat:=pf24b it;" ?
I am the First of Cyber Evolution...
I am the First to Program your Future... Последний раз редактировалось DomiNick; 16.09.2010 в 20:26. Причина: P.S. |
16.09.2010, 21:31 | #3 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
Слушайте а не проще использовать
TBitmap.Canvas.Pixels ??? |
16.09.2010, 21:48 | #4 |
Студент, не
Старожил
Регистрация: 29.01.2009
Сообщений: 2,067
|
И ждать результата раз в сорок (если не в 140) дольше?
I am the First of Cyber Evolution...
I am the First to Program your Future... |
16.09.2010, 22:10 | #5 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Продолжая мысь о простом хранении - не проще хранить в HBitMap, при необходимости подключаясь к нему и вытягивая инфу о пикселях? Лично у меня такой метод нисколько не тормозит даже на 800 * 600 картинках, при обновлении 40 раз\сек.
P.S. Если запросите, дам весь код своей системы.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
16.09.2010, 22:23 | #6 | |
Пользователь
Регистрация: 29.11.2009
Сообщений: 44
|
Цитата:
Есть функция сравнения 2 массивов - 2 кадров, нахожу наименьшее отличие одного от другого и накладываю и так далее. Для этого как раз и нужен массив, а как загонять изображение в массив это все равно (конечно не canvas.pixels), вот пробовал вариант через scanline, но до конца не получилось, если есть варианты, выложите плиз. |
|
17.09.2010, 09:22 | #7 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
А ничего и не должно происходить визуально (дальше будет ясно почему).
Процедура банально копирует одно изображение в другое, причем самым "садистстким" методом - по каждому цвету, составляющему пиксел. Но это бы еще ничего, если бы не вывод копии на форму по-пиксельно. Тут и слов нет. Естественно, по этим причинам появление изображение на форме происходит заметно медленно. Вот такой код выводит изображение за заметное для глаза время: Код:
Код:
Автору темы желательно попрактиковаться в работе с графикой, прежде чем браться за не самую простую, обозначенную им, задачу. Вопрос. А упомянутая функция "сравнения 2 массивов - 2 кадров" что принимает в качестве параметров (какой тип/какие типы и сколько) и что возвращает как результат сравнения? Последний раз редактировалось Прик; 17.09.2010 в 09:54. Причина: Вопрос |
17.09.2010, 11:06 | #8 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Для общего развития все таки покажу свой код:
1) Качаем сорсы от FVFL 2) Пишем у себя код: Код:
Код:
Код:
Код:
Код:
Код:
Код:
Код:
(Там только меню)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
17.09.2010, 19:23 | #9 | |||
Пользователь
Регистрация: 29.11.2009
Сообщений: 44
|
Цитата:
Цитата:
Цитата:
Код:
Далее беру часть 2 изображения, так же засовываю в массив, допустим s2[i,j] "Пробегаю s2 по всему s1" ища наименьшую разностную функцию, там где эта функция наименьшая, там теоретически и совпадают 2 кадра и просто накладываю 2 на 1. Остается вопрос, каким типом описать s1 и s2? подскажите |
|||
17.09.2010, 20:05 | #10 |
Форумчанин
Регистрация: 08.09.2010
Сообщений: 880
|
Оба фрагмента копирования и вывода я проверял - работают, т.е. изображение ProcessedBitmap выводятся на форму и в первом и во втором случае.
Вам не нужны какие-то особенные массивы (s, s2), так как TBitmap при загруженном изображении можно рассматривать как двухмерный массив элементов типа Integer, которые интерпретируются как TColor. После загрузки картинок в один и второй объекты класса TBitmap уже можно спокойно применять к ним "разностную функцию". Небольшое замечание: создавая объекты TBitmap нужно озаботится освобождением памяти от этих объектов когда они уже не нужны. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
timage в bmp | varelik | Мультимедиа в Delphi | 8 | 21.12.2009 09:55 |
Программа BMP | PradoSV | Общие вопросы C/C++ | 0 | 23.11.2009 23:25 |
bmp картинки | B@R@B@$HK@ | Общие вопросы C/C++ | 0 | 09.06.2009 23:08 |
Как загрузить BMP в массив и обратно в С++ | Ilja | Общие вопросы C/C++ | 8 | 07.03.2009 23:48 |
Декодирование BMP | Rezet | Мультимедиа в Delphi | 6 | 24.01.2009 22:33 |