Więc wiem, że context.clearRect
sprawia, że piksele są przezroczyste, ale zastanawiam się, czy istnieje funkcja, która sprawia, że piksele są półprzezroczyste?płótno jasne, z alfa
Na przykład, że mam płótno z tych kolorów (czwarta po jednym w każdym kolorze jest alfa):
#ffff #feef #abff
#5f6f #000f #ffff
Running clearRect
by rozwiązać w ten (lub coś, po prostu zrobić je wszystkie przezroczyste):
#fff0 #fee0 #abf0
#5f60 #0000 #fff0
Chcę usunąć przezroczystość, ale nie sprawiają, że przezroczyste (trochę jak globalAlpha
dla clearRect
), tak, że może skończyć się tak (powiedzmy ustawić globalAlpha
równowartość 0,5):
#fff8 #fee8 #abf8
#5f68 #0008 #fff8
Czy to możliwe? A może prostsze byłoby narysowanie wszystkiego na płótnie poza ekranem, a następnie narysowanie tego płótna (z zestawem globalAlpha
) na ekranie?
Daj mi znać, jeśli nie jest to w żaden sposób jasne.
Możesz użyć 'context.fillColor =" rgba (0-255, 0-255, 0-255, 0-1) "' i użyć fillRect. Czwarty parametr to wartość alfa. 0 jest maksymalnie przezroczyste, a 1 jest całkowicie nieprzezroczyste. –
@ gfcarv tak, to jest coś, czego chcę, ale nie chcę koloru. Chcę usunąć krycie (używam rozmycia ruchu, a tło musi być przezroczyste) – MiJyn
Sprawdź ten wątek: http://stackoverflow.com/questions/5304199/html-canvas-motion-blur-with-transparent -background Myślę, że łatwiej byłoby używać płótna poza ekranem. Możesz użyć 'getImageData', aby zmienić kolory pikseli jeden po drugim i użyć' putImageData' do odzwierciedlenia zmian na płótnie, ale nie chcesz tego robić, ponieważ jest to bardzo nieefektywne. –