This method also requires you to install
pillow to be install on python 3.
python 2 use
PIL.
Yes. It get rid of all white that equal (255,255,255).
String color names. Will not work.
filter_image(p_image, color="white")
Either grab top left corner pixel for transparent color.
Or use rgb format (255,255,255) equals white.
Bitmaps don't hold transparency. Using pillow save works fine.
Just replace
../Images/test with your file.
and change
filter_image(p_image, (0,0,0)) to
filter_image(p_image, (255,255,255))
import tkinter as tk
from PIL import ImageTk, Image
def filter_image(image, color):
alpha_mask = Image.new('1', image.size)
for y in range(image.size[1]):
for x in range(image.size[0]):
if image.getpixel((x, y)) == color:
alpha_mask.putpixel((x,y), 0)
else:
alpha_mask.putpixel((x,y), 1)
image.putalpha(alpha_mask)
class App:
def __init__(self):
self.root = tk.Tk()
filename = "../Images/test.bmp"
p_image = Image.open(filename)
# grab topleft corner or input rgb color
# filter_image(p_image, p_image.getpixel((0,0)))
filter_image(p_image, (0,0,0))
p_image.save("../Images/test2.bmp")
p_image.save("../Images/test2.png")
self.image = ImageTk.PhotoImage(p_image)
self.label = tk.Label(self.root, image = self.image)
self.label.pack()
app = App()
app.root.mainloop()
99 percent of computer problems exists between chair and keyboard.