| 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: 14 let
|
|||
0