Wpis z mikrobloga

Czesc mircy i Mirabelki ;)
Dwa pytania z #programowanie i #python.
1. Mam rysunek w png z przezroczystoscia. Nie wiem czemu, w miejscach gdzie jest przezroczystosc (alfa = 0) pozostale skladowe wektora wynosza:1,2,3 czyli [1,2,3,0]
sam obrazek wczytalem poleceniem:
obraz=Image.open(adres).convert("RGBA")
i przekonwertowalem do tablicy:
tablica=np.array(obraz)

1. Chcialbym wszystkie pixele, które nie sa nieprzezroczysta biela [255,255,255,255] usunac, tj zrobic je przezroczystymi ([0,0,0,0])./ Jak najefektywniej to zrobic?
Bo przejscie iteracyjne po kazdym pixelu i sprawdzenie czy ktorakolwiek z wartosci jest mniejsza od 255 chyba do najefektywniejszych nie nalezy.
  • 4
Nie wiem czy szybsze, ale pewnie trochę bardziej czytelne będzie:

obraz = Image.open(adres).convert("RGBA")
tablica = np.array(obraz)
r, g, b, a = tablica.T
bialyfiltr = (r == 255) & (b == 255) & (g == 255) & (a == 255)
tablica[~bialy
filtr.T] = (0, 0, 0, 0)