2012-03-04 4 views
2

Je voudrais changer la couleur de l'image/toile. Mon code existant:HTML5 Toile: Coloriser l'image

var loader = new PxLoader() 
var image = loader.addImage('images/balloon.png') 
loader.addCompletionListener(functio() { 
    var canvas = $("<canvas>").attr("width", "200").attr("height", "200"); 
    var context = canvas[0].getContext('2d'); 
    context.clearRect(0, 0, 200, 200); 
    context.drawImage(image, 0, 0); 
    // colorize?????? 
}); 

Comment puis-je coloriser - une manipulation supplémentaire du contexte (je voudrais utiliser Pixastic.process si possible)?

+1

Est-ce que vous regardez cela? http://stackoverflow.com/questions/2688961/how-do-i-tint-an-image-with-html5-canvas – Bojack

Répondre

4

Si par coloriser vous dire changer la couleur d'arrière-plan, puis utilisez ....

context.fillColor = '#f0f'; 

context.fillRect(0, 0, canvas.attr('width'), canvas.attr('height')); 

Si vous voulez dire à teinte la couleur, essayez ...

var data = ctx.getImageData(0, 0, canvas.attr('width'), canvas.attr('height')); 

for (var i = 0, length = data.data.length; i < length; i += 4) { 
    data.data[i] = Math.max(255, data.data[i]); 
} 

context.putImageData(data, 0, 0); 

jsFiddle.

Cela va au maximum la valeur rouge pour chaque pixel. Expérimentez avec pour obtenir l'effet que vous désirez.

+0

Non ... Je voudrais "teinter" l'image pour qu'elle ait plus de couleur rouge par exemple. – xpepermint

+0

@xpepermint Récupère les données de l'image ('getImageData()') et augmente la valeur * red * pour chaque pixel. – alex

+0

Huh ... pouvez-vous s'il vous plaît mettre à jour l'exemple? THX! – xpepermint