Rysuję obraz przy użyciu danych pikseli rgb. Muszę ustawić przezroczysty kolor tła dla tego obrazu. Jaką wartość mogę ustawić dla alfa jako przezroczystego obrazu? Czy jest jakieś inne rozwiązanie tego problemu?HTML5 jak narysować przezroczysty obraz piksela na płótnie
Odpowiedz
Jeśli rozumiem, czego potrzebujesz, zasadniczo chcesz zmienić określone kolory na obrazie przezroczystym. Aby to zrobić, musisz użyć getImageData
check out mdn for an explanation on pixel manipulation.
Herezje niektóre przykładowy kod
var imgd = ctx.getImageData(0, 0, imageWidth, imageHeight),
pix = imgd.data;
for (var i = 0, n = pix.length; i <n; i += 4) {
var r = pix[i],
g = pix[i+1],
b = pix[i+2];
if(g > 150){
// If the green component value is higher than 150
// make the pixel transparent because i+3 is the alpha component
// values 0-255 work, 255 is solid
pix[i + 3] = 0;
}
}
ctx.putImageData(imgd, 0, 0);
Z powyższego kodu można sprawdzić na fuschia za pomocą
if(r == 255 && g == 0 && b == 255)
Po narysowaniu obrazu w pikselach, muszę przenieść ten obraz na zdarzenie mousemove. Kiedy poruszam ten obraz, widzę biały prostokąt wokół tego obrazu. Muszę tego uniknąć. Czy jest jakiś sposób na przeniesienie tego samego obrazu zamiast prostokąta pikseli? – Joe
Trzeba by zrobić powyższe, z wyjątkiem szukania pikseli, które mają rgb 255,255,255 (biały). Spójrz na jsfiddle, tworzy element tymczasowy i rysuje na nim wyniki. Trzeba to zrobić. Mógłbyś manipulować pikselami i użyć 'putImageData' do umieszczenia danych na nowym płótnie, i to jest to, co chciałbyś przenieść zamiast obrazu. – Loktar
Po narysowaniu obrazu na elemencie tymczasowym użyłem poniższego kodu, a mój problem został rozwiązany. Dziękuję za pomoc. var imgURL = tempCanvas.toDataURL(); var myImage = new Image(); myImage.src = imgURL; context.drawImage (myImage, xPos, yPos); – Joe
alfa 0 wskazań, że piksel jest całkowicie przezroczysty, wartość alfa wynosząca 255 jest całkowicie nieprzejrzysta, co oznacza, że nie będzie przezroczysty.
jeśli części obrazu są całkowicie przezroczyste (wartość alfa równa 0), nie ma znaczenia, co użyjesz dla wartości RGB, o ile użyjesz alfa 0. Na bocznym notatniku niektóre starsze programy Windows, które ja zastosowali się do założenia takiego jak górny lewy piksel lub prawy dolny piksel ma być użyty jako kolor przezroczystości. Następnie przeliczy wszystkie piksele i ustawi wartość alfa na 0, gdy napotka określoną wartość RGB.
Jeśli użyjesz alfa 127, a obraz pojawi się na innym obrazie, będzie wyglądać, że oba obrazy są jednakowo widoczne lub że dolny obraz krwawi 50% swoich kolorów do najwyższego obrazu.
Ustaw zmienną dla alfa, jeśli chcesz przetestować i zobaczyć, jak wygląda po zastosowaniu go do całego obrazu.
Po ustawieniu 0 dla alfa we wszystkich pikselach, moja część obrazu całkowicie się obraca do białego. – Joe
myślę chcesz clearRect płótno m ethod:
http://www.w3schools.com/html5/canvas_clearrect.asp
to pozwoli Ci jasnych pikseli na przezroczyste (lub dowolnego innego koloru RGBA) bez zamieszania lub manipulacji pikseli.
- 1. CoreGraphics narysować obraz na białym płótnie
- 2. Rysowalny obraz na płótnie
- 3. Jak narysować tekst na płótnie?
- 4. wyraźna linia na płótnie HTML5
- 5. Wyciągnięcie na płótno Html5 Obraz rozciągnięty
- 6. Rysuj obiekt/obraz na płótnie
- 7. Jak narysować linię siatki na płótnie WPF?
- 8. android jak narysować bitmapę na półprzezroczystym płótnie
- 9. Jak narysować linię na płótnie w WPF o grubości 1 piksela
- 10. Rozciągnij obraz na płótnie
- 11. Jak narysować wzór na płótnie na palcu przeciągając
- 12. Jak narysować gładką owalny płótnie
- 13. jak edytować piksele i usunąć białe tło w obrazie na płótnie w html5 i javascript
- 14. ulotka js: rysuj punkty POI jako obraz na płótnie
- 15. HTML5 generowanie obrazu tła na płótnie
- 16. Jak dodać obramowanie na płótnie HTML5 "Tekst?
- 17. Otwórz obraz lokalny na płótnie
- 18. Przewijanie w poziomie na płótnie. HTML5
- 19. Jak narysować obraz na środku przycisku Radio
- 20. Rysowanie strzałki na płótnie HTML5 między dwoma obiektami
- 21. Rysuj tabelę/tabelę na płótnie HTML5
- 22. Jak zrobić dowolny widok, aby narysować na płótnie?
- 23. Element Angular2 oparty na płótnie: jak narysować wnętrze?
- 24. Nice Przeciągnij i upuść na płótnie HTML5
- 25. Kompozycja HTML5 na płótnie (źródło-w)
- 26. jcrop zamienia przezroczysty obraz czarny
- 27. obraz tekstury libgdx przezroczysty render
- 28. przewijanie/przesuwanie tła w płótnie html5
- 29. Jak załadować przezroczysty obraz z ImageList?
- 30. Utwórz obraz narysowany na płótnie przeciągalny za pomocą JavaScriptu
powiązane: http://stackoverflow.com/questions/2916938/how-to-draw-transparent-image-with-html5-canvas-element – Nobita