我使用HTML5畫布加載圖像的單個實例,然後我多次在單個畫布上進行多次佈局。該圖像需要一些基於像素的輕微操作才能對其進行自定義。我最初的攻擊計劃是加載圖像,將其粘貼到背景畫布上,在其上繪製我的修改,然後獲取圖像數據並將其緩存以供將來使用。HTML5畫布圖像緩存/ putImageData問題
下面是一些代碼,我已經寫了該效果:
context.drawImage(img, 0, 0);
context.fillStyle = '#ffffff';
context.fillRect(0, 0, 2, 2); // Draw a 2x2 rectangle of white pixels on the top left of the image
imageData = context.getImageData(0, 0, img.width, img.height);
cusomImage = imageData;
雖然這工作,我發現我的形象(這是一個透明的PNG)不保持透明度。相反,當使用putImageData將其放在我的前置畫布上時,它會以黑色背景呈現。我如何保持透明度?
歡迎任何建議!
爲什麼抓取圖像數據以備將來使用?您可以在需要繪製時使用Canvas本身:'newContext.drawImage(oldCanvas,0,0);'我認爲這會更快並且可能使用更少的內存。 – andrewmu 2011-03-07 15:11:00
這並不意味着我必須將每個位圖繪製到它自己的畫布上嗎?我期待着5到10位圖之間的任何地方。當然,這不是最佳? – ndg 2011-03-07 16:47:11