2023-10-15 21:35:32 -05:00

42 lines
1.6 KiB
Python

'''
Word Cloud Generator
This program generates a word cloud from user input text.
Author: ChatDev
'''
import tkinter as tk
from tkinter import messagebox, filedialog
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from PIL import ImageTk, Image
class WordCloudGenerator:
def __init__(self):
self.root = tk.Tk()
self.root.title("Word Cloud Generator")
self.text_entry = tk.Text(self.root, height=10, width=50)
self.text_entry.pack()
self.generate_button = tk.Button(self.root, text="Generate Word Cloud", command=self.generate_word_cloud)
self.generate_button.pack()
self.canvas = tk.Canvas(self.root, width=400, height=400)
self.canvas.pack()
self.root.mainloop()
def generate_word_cloud(self):
text = self.text_entry.get("1.0", tk.END)
if not text.strip():
messagebox.showerror("Error", "Please enter some text.")
return
file_path = filedialog.asksaveasfilename(defaultextension=".png", filetypes=[("PNG Image", "*.png")])
if not file_path:
return
wordcloud = WordCloud().generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.savefig(file_path)
plt.close()
self.update_canvas(file_path)
def update_canvas(self, image_path):
image = Image.open(image_path)
image = image.resize((400, 400), Image.ANTIALIAS)
self.wordcloud_image = ImageTk.PhotoImage(image)
self.canvas.create_image(0, 0, anchor=tk.NW, image=self.wordcloud_image)
if __name__ == "__main__":
WordCloudGenerator()