Обычно все, что нарисовано на холсте, автоматически меняет содержимое холста. Если вы хотите нарисовать прямоугольник с помощью мыши, не разрушая базовый холст, обычным способом является добавление дополнительного (временного) холста поверх исходного холста. Новый холст имеет прозрачный фон, поэтому базовый холст полностью виден.
Теперь вы рисуете прямоугольник на временном холсте (который имеет те же размеры, что и оригинал) и сохраняете координаты выделения, чтобы применить процесс обрезки к оригиналу.
Пожалуйста, смотрите мой пример здесь: http://jsbin.com/apitak/4