A simple, cross-platform desktop application built with Python and Tkinter to create, view, and search Polyglot files — paired .jpg and .txt files that are linked together for image–text management.
- Create Polyglot Files: Combine an image with custom text and save both together.
- Custom Filename: Choose your own filename before saving.
- Search Functionality: Instantly find any saved polyglot by keyword or ID.
- View Mode: Check existing polyglots side-by-side (image + text).
- Clean Storage: Automatically maintains a JSON index of all saved files.
- Standalone Windows App: Build into a single
.exefor easy sharing — no Python required.
Each Polyglot File is stored as:
filename.jpg
filename.jpg.txt
Both files share the same base name. The application tracks them automatically inside an internal JSON index for quick lookup.
Polyglot-v3/
│
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── gui.py
│ └── utils.py
│
├── main.py
├── README.md
└── requirements.txt
-
Python 3.10+
-
Dependencies (auto-installed from
requirements.txt):pip install -r requirements.txt
Currently includes:
pillow(for image handling)tkinter(standard in Python)
python main.pyTo package as a portable .exe:
-
Install PyInstaller:
pip install pyinstaller
-
Build:
pyinstaller --noconsole --onefile --name PolyglotFile main.py
-
Find your app in:
dist/PolyglotFile.exe
This .exe can run on any Windows 64-bit system — no Python required.
- Click Browse... to choose an image.
- Type your custom text.
- Click Save Polyglot File.
- Enter your desired filename when prompted.
- Choose a folder — both
.jpgand.txtfiles will be created there.
- Click Check Existing Polyglot File.
- Select either the
.jpgor.txt— the app displays both together.
- Click Search Polyglot Files.
- Enter a keyword or ID — results show image + text preview.
-
All saved polyglots are indexed in:
%USERPROFILE%\polyglot_files\index.json -
The app automatically rebuilds or updates this index as needed.
If the index ever gets corrupted or files are moved:
from src.utils import rebuild_index
rebuild_index()This will rebuild your index from the polyglot_files directory.
- The
.exemust remain in the same directory as your app data if you plan to use persistent indexing. - Avoid renaming
.jpgor.txtfiles manually; use the app to keep them synced.
This project is released under the MIT License — free for personal and educational use.