2012-03-19 3 views
0
ctx.drawImage(preview,0,0, preview.width, preview.height) 
var imgdata = ctx.getImageData(0,0, preview.width, preview.height).data; 
ctx.putImageData(opaque(ctx.createImageData(10,10)), 0,0) 

Непрозрачная функция устанавливает альфа-данные в 1., чтобы боль был черным квадратом 10 * 10.putImageData не работает проверено существующие вопросы

function opaque(imgData){ 
     for(var i=0, data = imgData.data; i<data.length; i=i+4){    
      data[i+3] = 1; 
     }  
     return imgData; 
    } 

Но мой холст выглядит белым.

ответ

1

Что вы пытаетесь сделать?

Если вы хотите нарисовать черный квадрат, используйте context.fillRect (...). Это более эффективно, чем манипулирование imageData.

Если вы хотите, чтобы части вашего изображения были полностью прозрачными, вам необходимо установить альфа-канал в 0. Альфа-канал находится в диапазоне [0..255], с нулевым значением, полностью прозрачным, и 255 означает полностью непрозрачный ,

Хотя я на самом деле не запустил его, от чтения вашей непрозрачной функции все, что ей кажется, это сделать пиксель аргумента imageData почти полностью прозрачным.

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