getImageData
ile ilgili garip bir sorun farkettim; Görüntü verisi alındığında görüntünün şeffaflığı göz ardı edilir gibi görünüyor. getImageData - HTML5 2d Bağlamında kaybolan transparency
herhangi bir görüntü imajı veriden önce canvas
üzerine çizilmesine ihtiyaç beri
canvas
opak olma ile ilgili bir sorun olduğunu kabul, elde edilebilir. Ama ben hatalıydım,'u
drawImage
numaralı argüman olarak kullanmak saydamlığı korur.
Görüntüyü nasıl yüklediğimi burada;
var load_image = function(name, url, holder, callback) {
var img = new Image();
img.src = url;
img.addEventListener('load', function(e) {
var canvas = make_canvas(e.target.width, e.target.height);
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(e.target, 0, 0);
holder[name] = {canvas: canvas, ctx: ctx};
delete e.target;
callback.call();
}, false);
};
callback
sadece bir görüntü çizmek için draw_image
çağırır çekme fonksiyonudur.
Her zamanki sürümü;
var draw_image = function(ctx, img, sx, sy, w, h, dx, dy) {
ctx.drawImage(img.canvas, sx, sy, w, h, dx, dy, w, h);
};
Bu sadece drawImage
için bir argüman olarak tuval alır ve muhafaza şeffaflık ile amaçlanan şekilde sonucudur. Example.
Görüntü verisi sürümü;
var draw_image = function(ctx, img, sx, sy, w, h, dx, dy) {
var imagedata = img.ctx.getImageData(sx, sy, w, h);
ctx.putImageData(imagedata, dx, dy);
};
Bu seferki zamanki sürümde kullanılanla aynı tuval den yeterli dikdörtgenin görüntü verileri elde eden ve ben çizmek istiyorum tuval üzerine görüntü verilerini koyar. Şeffaflığın sürdürüleceğine inanıyorum ama bu böyle değil. Example. (Bu, origin-clean
bayrağından dolayı bir Dropbox bağlantısıdır.)
Saydamlığın getImageData
ile sürdürülmesi gerektiğini varsayarak hatalı mıyım? Yoksa sadece yanlış bir şekilde mi kullanıyorum?
Her iki durumda da, yardım gerçekten takdir edilecektir.
Anladım, bunu açıklıyor! Cevabınız için teşekkürler! Yine de, bu işlerde gerçekten bir anahtar atar. 'Tuval' oyunlarında 'resim' olarak kullanmanın yararları (renk maskeleme ve bağlam olmadan perspektif dönüşümü) baştan ağır basıyorsa test etmeyi planlıyordum. Dönüştürülmüş görüntüyü çizmek için bir ara tuvale koymam gerekirse, işleme için 'Image' nesnelerini ve kaba bir 'tuvali' kullanmaya devam edebilirim. Tekrar teşekkürler! – Rikonator