Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   createImageData и putImageData (https://javascript.ru/forum/misc/24526-createimagedata-i-putimagedata.html)

miha-ha 04.01.2012 16:47

createImageData и putImageData
 
Всем привет!
Никак не получается осознать, почему при отрисовке с помощью putImageData прозрачного прямоугольника созданного createImageData - он не прозрачный а белый?
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
var pixelSet = ctx.createImageData(50,50); // Черный квадрат 50 x 50 полностью прозрачный

ctx.fillStyle = "#000000";
ctx.fillRect(0,0, 600, 400);    
ctx.putImageData(pixelSet, 0,0);


После отработки этого кода на экране белый прямоугольник на черном фоне...

miha-ha 06.01.2012 13:57

Уточню вопрос: хочу сделать кеширование, что б каждый кадр не рисовать изображение. Т.е. один раз нарисовать на канву и сохранить область рисунка(например с помощью getImageData) и в последствии выводить на канву только сохраненную область.
Попытка выводить с помощью putImageData не увенчалась успехом, так как не учитывается прозрачность...
Есть предложения как организовать кеширование?

nerv_ 06.01.2012 14:07

Цитата:

Сообщение от miha-ha
почему при отрисовке с помощью putImageData прозрачного прямоугольника созданного createImageData - он не прозрачный а белый?

Возможно, из-за того, что Вы устанавливаете прозрачность таким способом, кот. не поддерживает интересующий Вас браузер.

miha-ha 06.01.2012 16:11

вот пример: http://jsfiddle.net/mihaha/uYSUS/
проверил в firefoxe и хроме... видно дело не в браузерах, а втом как правильно использовать или не использовать :)


Часовой пояс GMT +3, время: 00:14.