Para crear un png transparente usando Python3, se usa la biblioteca Pillow. La biblioteca de Pillow viene con Python. Si Python no puede encontrar la biblioteca de Pillows, abra el símbolo del sistema y ejecute este comando:-
pip install Pillow
Nota: Si tiene algún problema para instalar Pillow usando pip, primero instale y configure pip. Para esto revisa este artículo.
Acercarse:
1. importa el módulo Imagen de la biblioteca de Pillow
from PIL import Image
2. Abra cualquier imagen y obtenga los valores de RAGBAG.
img = Imagen.open(‘imagen.png’)
rgba = img.convert(“RGBA”)
datos = rgba.getdata()
3. Cambia el color
Los datos serán un objeto Imaging Core que contiene miles de tuplas de valores RGBA. Para hacer transparente el fondo primero tenemos que encontrar los valores RGBA del fondo o cualquier color que queramos hacer transparente. Aquí en esta imagen, el color de fondo es negro.
El valor RGB del negro es (0, 0, 0). Ahora recorreremos los datos (valores RGBA) y cada vez que encontremos un píxel negro lo reemplazaremos con un valor RGBA transparente que es ((255, 255, 255, 0), y los otros colores permanecerán sin cambios. Y nosotros almacenará los valores en una nueva lista llamada newData.
nuevosdatos = []
para artículo en datos:
si artículo[0] == 0 y artículo[1] == 0 y artículo[2] == 0:
newData.append((255, 255, 255, 0))
más:
newData.append(elemento)
4. Guarde la imagen modificada
Almacene los datos nuevos en el valor RGBA y guarde la imagen en formato png (la imagen transparente no se puede almacenar en formato jpg o jpeg).
rgba.putdata(nuevosdatos)
rgba.save(“imagen_transparente.png”, “PNG”)
Implementación:
Python3
from PIL import Image img = Image.open('image.png') rgba = img.convert("RGBA") datas = rgba.getdata() newData = [] for item in datas: if item[0] == 0 and item[1] == 0 and item[2] == 0: # finding black colour by its RGB value # storing a transparent value when we find a black colour newData.append((255, 255, 255, 0)) else: newData.append(item) # other colours remain unchanged rgba.putdata(newData) rgba.save("transparent_image.png", "PNG")
Producción:
Ahora, tomando la misma imagen, si queremos que el color amarillo sea transparente, necesitamos que los píxeles amarillos sean transparentes. Para esto, tenemos que encontrar el color amarillo por sus valores RBG (255, 255, 0) y reemplazarlo con (255, 255, 255, 0).
El nuevo código se ve así:
Python3
from PIL import Image img = Image.open('image.png') rgba = img.convert("RGBA") datas = rgba.getdata() newData = [] for item in datas: if item[0] == 255 and item[1] == 255 and item[2] == 0: # finding yellow colour # replacing it with a transparent value newData.append((255, 255, 255, 0)) else: newData.append(item) rgba.putdata(newData) rgba.save("transparent_image.png", "PNG")
Producción:
Aquí hacemos transparente el color amarillo.
Publicación traducida automáticamente
Artículo escrito por santanunandi01 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA