Показать сообщение отдельно
  #5 (permalink)  
Старый 26.10.2011, 12:29
Новичок на форуме
Отправить личное сообщение для nixy Посмотреть профиль Найти все сообщения от nixy
 
Регистрация: 26.10.2011
Сообщений: 5

Цитата:
они сохраняют изображение с канвы в объекте... но для этого вторая канва не нужна
но ведь этот объект и есть вторая канва-буфер (или же её контекст), разве нет?

Цитата:
сохранят изображение с канвы в объекте, делают трансформацию и вставляют
если я правильно понимаю, то для этих трёх действий необходимо следующее:

- создать объект, куда сохранять оригинал
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.
Ответить с цитированием