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