Вообразим себе программу для рисования блок-схем.
Прямолинейный подход: пользователь кликает кнопку "прямоугольник", потом рисует этот прямоугольник на блок-схеме. Всё, что осталось от действий пользователя - изменения картинки (дорисованный прямоугольник).
Альтернативный подход: когда пользователь закончил рисование прямоугольника, программа сохраняет координаты/цвет/и т.п. прямоугольника в список элементов блок-схемы. Таким образом, программа в любой момент может перерисовать элемент за элементом на произвольный Canvas, а пользователь -- подредактировать уже размещённые элементы.
Так вот, для второго подхода прорисовка блок-схемы поверх сетки, или "как есть" для сохранения в битмап, или просто сохранение блок-схемы в своём формате (не картинкой) -- не проблема