2017-01-16 5 views
0

Я использую html5 canvas и javascript, чтобы нарисовать некоторые вещи на экране. Однако, поскольку то, что я рисую, иногда будет большим, у меня есть функция панорамирования.Canvas save pixels out of view artifacting

Проблема заключается в том, что, когда чертеж выходит за пределы экрана в верхней или левой части, я получаю странный артефакт. artifact

Я использую функцию toDataURL(), чтобы сохранить данные, полученные и перерисовывать его как изображение, используя drawImage().

Приложение находится в here.

ответ

0

Это происходит потому, что вы перетаскиваете его «ниже», чем граница рендеринга.

===================== 
emtpy with artifacts 
empty with artifacts 
_____________________________ 
start of your canvas drawing 

Поскольку пустое пространство не заполнено сплошным цветом, оно хранится как в буфере.

Просто определите край вашей панели рисования и заполните оставшуюся видимую область просмотра с помощью заливки, когда вы рисуете ниже, чем порт просмотра после перетаскивания.

+0

Есть ли способ изменить границу рендеринга? Я хотел бы, чтобы холст был больше, чем экран, но по-прежнему сосредоточен. – R4VANG3R

+0

вам нужно переместить центральную точку вашего чертежа. Не холст ... – Tschallacka

+0

Тогда рисунок будет нецентральным в нижнем правом углу. – R4VANG3R

 Смежные вопросы

  • Нет связанных вопросов^_^