π FuzzuTech – Steganography Tool GUI | Hide Messages in Images (Python App)
Demo :
Click Video πππ
✨ Features :
-
Encode & decode hidden messages
-
100% offline
-
Dark mode GUI
-
PNG support
-
Built with Python PIL + customtkinter
Code :
import customtkinter as ctk
from tkinter import filedialog
from PIL import Image
import io
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.geometry("500x600")
app.title("Steganography Tool – FuzzuTech")
def encode_image():
filepath = filedialog.askopenfilename()
if not filepath: return
img = Image.open(filepath)
message = text_entry.get("1.0", "end-1c")
encoded = img.copy()
binary_msg = ''.join(format(ord(i), '08b') for i in message)
binary_msg += '1111111111111110' # EOF marker
pixels = list(encoded.getdata())
for i in range(len(binary_msg)):
r, g, b = pixels[i]
r = (r & ~1) | int(binary_msg[i])
pixels[i] = (r, g, b)
encoded.putdata(pixels)
encoded.save("encoded_image.png")
status_label.configure(text="✅ Message Encoded & Saved!")
def decode_image():
filepath = filedialog.askopenfilename()
if not filepath: return
img = Image.open(filepath)
pixels = list(img.getdata())
binary_msg = ""
for r, g, b in pixels:
binary_msg += str(r & 1)
chars = [chr(int(binary_msg[i:i+8], 2)) for i in range(0, len(binary_msg), 8)]
message = ''.join(chars)
if 'ΓΎ' in message:
message = message.split('ΓΎ')[0]
text_entry.delete("1.0", "end")
text_entry.insert("1.0", message)
title = ctk.CTkLabel(app, text="π Steganography GUI", font=("Roboto", 22))
title.pack(pady=20)
text_entry = ctk.CTkTextbox(app, height=200, width=400)
text_entry.pack(pady=10)
encode_btn = ctk.CTkButton(app, text="Encode Message in Image", command=encode_image)
encode_btn.pack(pady=10)
decode_btn = ctk.CTkButton(app, text="Decode Message from Image", command=decode_image)
decode_btn.pack(pady=10)
status_label = ctk.CTkLabel(app, text="")
status_label.pack(pady=10)
app.mainloop()
Comments
Post a Comment