Autor | Zpráva | ||
---|---|---|---|
kozusnik.jan Profil * |
#1 · Zasláno: 28. 1. 2013, 21:50:33
Ahoj, řeším problém, jak smazat img element z canvasu. Jako dobré řešení po dlouhém hledání mi přišlo prostě vzít jednotlivé pixely obrázku a nastavit je všechny na bílou barvu. Problém je v tom, že to nefunguje. Nevíte, kde je chyba? Děkuji
function removeImage(ctx, canvas) { var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); var pixels = imageData.data; var numPixels = canvas.width * canvas.height; for (var i = 0; i < numPixels; i++) { pixels[i*4] = 0; // Red pixels[i*4+1] = 0; // Green pixels[i*4+2] = 0; // Blue }; } function drawShadow(view, zoomed){ // create canvas canvas = document.getElementById("cv"); ctx = canvas.getContext("2d"); canvasWidth = canvas.width; // create img canvasHeight = canvas.height; removeImage(ctx, canvas); var img = document.createElement("img"); img.onload = function() { ctx.drawImage(img, 0, 0); getMyImgData(ctx, canvas, view) } if(view == 'entrance') { img.src = "images/shadowMaps/entranceShadow.png";} if(view == 'shops') { if(zoomed == 0) {img.src = "images/shadowMaps/shopsShadow.PNG";} if(zoomed == 1) {img.src = "images/shadowMaps/shopsZoomedShadow.PNG"; } } } |
||
1Pupik1989 Profil |
#2 · Zasláno: 29. 1. 2013, 09:33:15
Metodou clearRect, nakonec jsem zjistil, že rychlejší způsob není. Metoda cyklu a překreslování pixelů je zbytečně náročná.
|
||
Časová prodleva: 11 let
|
0