【发布时间】:2022-01-09 15:06:33
【问题描述】:
def recoltest():
filenamusda = filedialog.askdirectory()
print(filenamusda)
global entry
string = entry.get()
label1.configure(text=string)
path = filenamusda + "/*png"
for file in glob.glob(path):
img = Image.open(file).convert("L")
img = ImageOps.grayscale(img)
img = ImageOps.colorize(img, black=string, white="white")
img = img.convert("RGBA")
text = ScrolledText(root, width=50, height=30,padx=10,pady=8)
text.pack()
for i in range(30):
cb = tk.Checkbutton(text=file, bg='white', anchor='w')
text.window_create('end', window=cb)
text.insert('end', '\n')
datas = img.getdata()
newData = []
for item in datas:
if item[0] == 154 and item[1] == 154 and item[2] == 154:
newData.append((255, 255, 255, 0))
if item[0] == 175 and item[1] == 95 and item[2] == 175:
newData.append((255, 255, 255, 0))
如何使它只重新着色实际图像而不是透明背景?
【问题讨论】:
-
您可以跳过alpha通道值为0的原始图像的像素。
-
请确保您的问题minimal、complete和runabble。这意味着它应该包含必要的
import语句来运行它,您应该删除所有不相关的tk内容并提供有代表性的输入图像和预期结果。谢谢你。这也意味着您将更有可能得到答案,而且可能会更快。
标签: python image tkinter python-imaging-library