ctx.getImageData () возвращает только первые 180000 байт, следующие байты равны нулю [duplicate]

Это исключение вызывается вызовом Server.Transfer , чтобы остановить выполнение текущего метода - точно так же получается, если вы сделаете Response.Redirect ].

У вас есть два варианта:

  • Поймать и реконструировать ThreadAbortException / изменить сервер Server.Transfer
  • ] Убедитесь, что вы выполняете Server.Transfer в тех местах, где он не будет пойман (рекомендуется)

EDIT: исправить это, http: // support.microsoft.com/kb/312629 есть еще несколько предложений, но я по-прежнему рекомендую # 2 выше.

15
задан Finnnn 17 October 2011 в 13:31
поделиться

3 ответа

Я могу подтвердить, что в Chrome размер по умолчанию составляет 300px x 150px.

1
ответ дан qgicup 15 August 2018 в 15:36
поделиться

Устройте свой макет таким образом, чтобы существовало div, и единственное задание этого div должно диктовать и быть размером, которым вы хотите, чтобы быть холстом.

var canvas = document.createElement('canvas');
canvas.width = div.clientWidth;
canvas.height = div.clientHeight;

Затем добавьте холст в div.

11
ответ дан Simon Sarris 15 August 2018 в 15:36
поделиться
  • 1
    Это очевидный ответ, однако моя проблема заключается в том, что тег canvas был создан на стороне сервера - он не создан на стороне клиента. Это плохая практика? – Finnnn 17 October 2011 в 14:39
  • 2
    Не должно быть ничего плохого в настройке ширины и высоты холста, как только вы сможете использовать ту же технику. Mozilla Bespin постоянно проверяла, изменил ли размер div, а затем (re) установил холст соответственно. – Simon Sarris 17 October 2011 в 15:17
  • 3
    Полагаю, я пытаюсь убедиться, что макет выглядит отлично, если у пользователя отключен javascript. Полностью избегайте использования javascript для стиля исходного макета. Похоже, это невозможно, что кажется серьезным ограничением тега canvas. Опять же, я мог бы что-то делать неправильно / использовать плохие практики. – Finnnn 17 October 2011 в 15:32
  • 4
    Холст практически бесполезен, если JavaScript отключен в любом случае. : / – Simon Sarris 17 October 2011 в 15:55
  • 5
    Ну, если вам нужно, создайте их на стороне сервера (но вы это делаете) с шириной и высотой 1. & lt; ширина холста = "1" высота = & Quot; 1 & Quot; & GT; & Lt; / полотно & GT; а затем отрегулируйте его, если у них есть включен javascript. – Simon Sarris 17 October 2011 в 18:03

Finnnn, вы правы.

Из спецификации html5, http://www.w3.org/TR/2012/WD-html5-author-20120329/the-canvas -element .html # the-canvas-element

Элемент canvas имеет два атрибута для управления размером координатного пространства: ширина и высота.

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

Атрибут width по умолчанию равен 300, а атрибуту height по умолчанию - 150.

22
ответ дан Stephan 15 August 2018 в 15:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: