Я думаю, вы, возможно, неправильно поняли, что такое холст.
Холст - это по существу двумерная сетка пикселей вдоль оси 'X' и оси 'Y'. Вы используете API для рисования пикселей на этом холсте, поэтому, когда вы рисуете изображение, вы в основном рисуете пиксели, которые составляют это изображение на вашем холсте. Причина в том, что НЕТ метода, который позволяет вам просто удалить изображение, потому что Canvas не знает, что там есть изображение, он просто видит пиксели.
Это не похоже на HTML DOM (объектную модель документа), где все является элементом HTML или реальной «вещью», с которой вы можете взаимодействовать, событиями сценария подключения и т. Д. Это не относится к тому, что вы рисуете на холст. Когда вы рисуете «вещь» на холсте, эта вещь не становится чем-то, на что вы можете нацелиться или попасть, это всего лишь пиксели. Чтобы получить «вещь», вам нужно каким-то образом представлять свою «вещь», например, объект JavaScript, и где-то поддерживать коллекцию этих объектов JS. Вот как работают Canvas-игры. Это отсутствие DOM-подобной структуры для Canvas делает рендеринг очень быстрым, но может быть проблемой для реализации элементов пользовательского интерфейса, которые вы можете легко подключать и взаимодействовать, удалять и т. Д. Для этого вы можете попробовать SVG.
Чтобы ответить на ваш вопрос, просто нарисуйте прямоугольник на холсте, который покрывает ваше изображение, используя те же координаты и размеры X / Y, которые вы использовали для исходного изображения, или попробуйте решение Pointy. «Сокрытие» - это, вероятно, неправильная терминология, поскольку вы фактически заменяете пиксели (в Canvas нет слоев).