putImageData (), como manter pixels antigos se novos pixels são transparentes?

No html5, quando você desenha em uma tela usando putImageData (), se alguns dos pixels que você está desenhando são transparentes (ou semitransparentes), como você mantém os pixels antigos na tela sem serem afetados?

exemplo:

var imgData = context.createImageData(30,30);
for(var i=0; i<imgData.data.length; i+=4)
{
imgData.data[i]=255;
imgData.data[i+1]=0;
imgData.data[i+2]=0;
imgData.data[i+3]=255;
if((i/4)%30 > 15)imgData.data[i+3] = 0;
}
context.putImageData(imgData,0,0);

A metade direita do ret 30x30 é transparente. Se isso for desenhado sobre algo na tela, os pixels atrás da metade direita serão removidos (ou se tornarão transparentes). Como eu os mantenho?

questionAnswers(4)

yourAnswerToTheQuestion