Mam szybkie pytanie dla kogoś, kto zna lepszy bibliotekę obrazu Pythona niż ja. Mam obraz PNG z kanałem alfa i chcę dwa najważniejsze wiersze pikseli być całkowicie przejrzyste. Otóż to! Do tej pory moje wysiłki powodują, że dwa wiersze są przezroczyste, ale oryginalny obraz traci informacje o kanale alfa. Czy ktoś znał najlepszy sposób na osiągnięcie tego?

3
DizzyDoo 1 wrzesień 2012, 19:01

2 odpowiedzi

Najlepsza odpowiedź

Możesz to zrobić w ten sposób.

img = Image.open("withAlpha.png")
p = img.load()

for y in range(2):
    for x in range(img.size[0]):
        t = list(p[x,y])
        t[3] = 0
        p[x,y] = tuple(t)

img.save("result.png")
4
MatthieuW 1 wrzesień 2012, 15:54

Zrobiłbym to następujący:

img = Image.open("myimage.png")
p = img.load()
alpha = img.split()[-1]
width, height = img.size
for y in range(2): #First two rows
    for x in range(width): #The whole row
        alpha[x, y] = 0
img.putalpha(alpha)

Mam nadzieję, że to zadziała.

3
halex 1 wrzesień 2012, 16:57