преобразование цвета в оттенки серого на холсте - PullRequest
2 голосов
/ 29 августа 2011

Я пробую пример кода, который преобразует цветное изображение в оттенки серого на холсте в WebOS (enyo).Когда я использую метод ctx.getImageData для чтения пикселей, imageData содержит только нули.Образец, который я использую, предоставляется по ссылке ниже:

http://chopapp.com/#x8t2ymad

Поддерживает ли WebOS чтение данных пикселей с холста?Я что-то здесь не так делаю?

Я ссылался на следующую ссылку для логики и кода:

http://net.tutsplus.com/tutorials/javascript-ajax/how-to-transition-an-image-from-bw-to-color-with-canvas/

Это прекрасно работает.

1 Ответ

3 голосов
/ 29 августа 2011

Вы должны переместить getimagedata в обратном вызове из события onload изображения.

что-то вроде:

draw: function(image) {
    this.ctx.drawImage(event.target, 0, 0);
    this.greyImage();
},

и установить источник после привязки события

image.onload = enyo.bind(this, "draw");
image.src = "images/image.png";

чтобы избежать гоночных условий

теперь изображения извлекаются до фактической загрузки пикселей. В результате получается пустой массив.

...