Показать сообщение отдельно
  #2  
Старый 06.01.2014, 10:56
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Creator13
Нужно быстрое решение, без прогона всего имейджа по пиксельно, возможно, путем взвешивания всех пикселей или еще как-то. Чтобы не было большой задержки по времени и ресурсам.
Взвешивание всех пикселей это и будет прогоном по всем пикселям - иначе никак, ведь изменение всего одного пикселя является изменением изображения, а чтобы быть уверенным, что ни один пиксель не изменился нужно делать прогон по всем пикселям. А для ускорения обращайся к пикселям напрямую через "TBitmap.ScanLine" вместо медленного "TBitmap.Canvas.Pixels".
Самый надёжный вариант проверить изменилась или нет картинка - сравнить попиксельно новое изображение с предыдущим. Если же изображение будет в основном изменяться, тогда можно попробовать вариант с вычислением суммы пикселей - в этом случае если сумма изменилась, то и изображение изменилось (и не нужно выполнять сравнение с предыдущим изображением), если же сумма не изменилась тогда придётся выполнить ещё и цикл сравнения с предыдущим изображением.
Ответить с цитированием