Я работаю над холстом HTML5 с манипуляциями с изображениями. На моем холсте у меня есть количество изображений. Когда я хочу обрезать изображения по отдельности. Но когда я зажимаю одно изображение, создавая форму и использую функцию clip()
, она работает нормально. Но проблема возникает, когда я пытаюсь закрепить другое изображение, используя тот же метод. Поскольку холст хранит предыдущую форму, он будет конкатенацией с новой и соответствующим образом скопируйте второе изображение. Я хочу уничтожить предыдущую форму. Обратите внимание, что я не могу использовать clearRect()
, чтобы очистить холст, поскольку мое предыдущее обрезанное изображение есть.Обрезание нескольких изображений в холсте HTML5
Пожалуйста реф ссылку:
В перетащить ссылку на изображение в холст предопределенного слоя и перетащите изображение вокруг. Вы можете ясно видеть, что изображение обрезается правильно, если оно пытается выйти из границы.
Теперь перетащите другое изображение в холст в другой коробке. Теперь вы можете видеть, что обрезка не работает должным образом.
Вот что я сделал в сценарии:
Здесь JSFiddle Link
Можете ли вы помочь мне решить эту проблему? Будет полезно, если вы найдете другой способ очистки предыдущей формы.
Заранее спасибо.
Я хотел бы помочь, но мой АВ сказать не идти на ваши ссылки, потому что они известны, содержащие вирусы, размещать свои примеры на JSFiddle – QBM5
ли вы пропустили, что вы должны были использовать сохранение/восстановление до/после отсечения? Может быть, вы просто не поняли, что холст - это машина состояния. Вы должны сами следить за состоянием холста. – GameAlchemist
@GameAlchemist. +1 Я подозреваю, что ты прав, что Татха нуждается в спасении/восстановлении. Чтобы уточнить ваш вопрос: Предыдущие области отсечения будут сохраняться для всех новых чертежей. Чтобы избежать этой настойчивости, прежде чем обрезать, сделайте 'context.save()', а затем создайте контекст.restore() ', когда вы закончите обрезку и рисование. Таким образом, вы можете применить новый клип для новых чертежей. – markE