Цитата:
|
они сохраняют изображение с канвы в объекте... но для этого вторая канва не нужна
|
но ведь этот объект и есть вторая канва-буфер (или же её контекст), разве нет?
Цитата:
|
сохранят изображение с канвы в объекте, делают трансформацию и вставляют
|
если я правильно понимаю, то для этих трёх действий необходимо следующее:
- создать объект, куда сохранять оригинал
buffer = document.createElement('canvas').getContext('2d')
- сохранить в buffer изображение-оригинал
buffer.всяческое_рисование()
- сделать его трансформацию примерно вот так:
sub_buffer.setTransform(..матрица..)
sub_buffer.drawImage(buffer.canvas,0,0)
(sub_buffer необходим для сохранения в нём трансформированного основного буфера buffer)
- вставить трансформированную "под-канву" на основную канву странички
context.imageDraw(sub_buffer.canvas,0,0)
В принципе это всё работает, но исходя из бытовой логики, где:
Цитата:
|
трансформируется сам холст
|
как бы этот холст странсформировать, с уже находящемся на нём контентом. Т.к. где-то в глубине кроется предчувствие, что возможно выкинуть из кода строки
sub_buffer.setTransform(..матрица..)
sub_buffer.drawImage(buffer.canvas,0,0)
как и сам промежуточный sub_buffer, и вместо этого вписать
buffer.setTransform(..матрица..)
buffer.ReDraw() // которого, к сожалению не существует =(
context.imageDraw(buffer.canvas,0,0).
Я описал упрощенный пример для одного буфера. Но если предположить, что на страничке уже не один буфер, а целый массив, в нём лежит штук 100 картинок, и для каждой картинки на каждый маусМув присваивается своя трансформация, и потом это всё отрисовывается на основной канве, то я подумал не будет ли лишним избавиться от хотя бы одного промежуточного drawImage.
А в примерах нет именно трансформации буфера, поэтому там такой элегантный код, и нету этого промежуточного sub_buffer.