Welcome to the PhotoFly
! This application is designed to provide users with a powerful yet user-friendly interface for viewing and editing images. Built using Python's customtkinter
, it offers a variety of functionalities, including rotating images, adjusting colors, applying effects, and exporting in multiple formats.
- Intuitive User Interface: Designed for ease of use, even for beginners. 🎮
- Image Manipulation: Rotate, zoom, flip, and apply various color adjustments and effects. 🔄
- Multiple Export Formats: Save your edited images in JPG or PNG formats. 💾
- Real-Time Preview: See changes as you make them with real-time updates. 👁️
- Customization: Adjust sliders and switches to fine-tune your images. ⚙️
- About Section: View information about the application, its version, and the developer.ℹ️
To set up the Image Viewer and Editor on your local machine, follow these steps:
- Clone the Repository:
git clone https://github.com/asRot0/Image-viewer-and-editor.git
- Navigate to the Project Directory:
cd Image-viewer-and-editor
- Install Dependencies: Make sure you have Python installed. Then install the required libraries using pip
pip install -r requirements.txt
- Run the Application: Start the application using the command
python run.py
To run this project, you need to have the following dependencies installed:
- customtkinter==5.2.2
- Pillow==10.2.0
- CTkToolTip==0.8
- CTkMessagebox==2.5
You can install them using pip
. Open your terminal or command prompt and run the following commands:
pip install customtkinter==5.2.2
pip install Pillow==10.2.0
pip install CTkToolTip==0.8
pip install CTkMessagebox==2.5
After running run.py
, the main interface will appear.
Use the File Path Panel to select your image file 📂 from your file system. Click the button to open the file explorer and choose your desired image.
- Position Tab: Adjust the rotation and zoom level using sliders. You can also flip the image vertically or horizontally. 🔄
- Color Tab: Modify properties like brightness, contrast, and vibrance. You can also convert the image to grayscale or invert its colors. 🌈
- Effects Tab: Apply various effects to the image, including blur and contour. ✨
- Use the
Export
section to specify a name and choose the format (JPG or PNG). Click the save button to export your edited image. 💾
The project is organized as follows:
Image-viewer-and-editor/
|-- assets/ # Contains assets like images and icons
|-- files/ # Main application files
| |-- __init__.py
| |-- frame.py # Frame structure and layout
| |-- frame_widgets.py # Widgets for frames
| |-- image_widgets.py # Image handling widgets
| |-- menu.py # Main menu and tabs
| |-- panels.py # UI panels and components
| |-- photo_editor.py # Main application logic
| |-- settings.py # Configuration settings
|-- run.py # Entry point for the application
-
run.py: The main entry point of the application, responsible for launching the application. 🚀
-
settings.py: Contains configuration settings, constants, and paths for assets used in the application. ⚙️
-
menu.py: Implements the main menu layout and manages the navigation between different editing tabs. ✂️
-
panels.py: Contains various UI panels that house the editing controls and options for users. 🔧
-
photo_editor.py: This file contains the core logic for the image editing functionalities. 🖼️
-
Menu: The application is organized into tabs:
- Position: Adjust image rotation and zoom. 🔄
- Color: Modify brightness, contrast, and color settings. 🎨
- Effects: Apply effects like blur or contour. ✨
- Export: Specify the file name and format for saving the image. 🗂️
-
Panels: Each tab contains specific panels that group related controls, making it easy for users to navigate the functionalities. 🧩
-
Settings: Centralized settings for asset paths and default values used throughout the application. ⚙️
- Rotation 🔄: Control the rotation of the image from 0 to 360 degrees using a slider.
- Zoom 🔍: Adjust the zoom level from 0% to 200% using a slider.
- Invert 🔃: Use a segmented button to flip the image in different orientations (None, X, Y, Both).
- Brightness ☀️: Adjust the brightness of the image with a slider (0 to 5).
- Grayscale ⚫⚪: Convert the image to black and white using a switch.
- Invert Colors 🔄: Toggle color inversion using a switch.
- Vibrance 🌈: Adjust the vibrance of the image with a slider (0 to 5).
- DropDown Menu 🎨: Select from various effects (None, Emboss, Find edges, etc.).
- Blur 🌫️: Apply a blur effect adjustable from 0 to 10.
- Contrast 🌓: Adjust the contrast of the image from 0 to 10.
- File Name 📝: Input the desired file name for the exported image.
- File Format 🖼️: Choose between JPG and PNG formats using checkboxes.
- File Path 📂: Select the destination folder for saving the edited image.
- Save Button 💾: Click to export the edited image with the specified parameters.
Well... there might be a little bug somewhere in the app 🐞. It's just hanging out, living its best life. Can you spot it? 👀
It's like a scavenger hunt, but instead of prizes, you get some sweet debugging skills! 😎🔧
P.S. I know about it 😜, but I thought I'd let you have some fun looking for it. Go ahead, give it a try — I dare you! 💻✨
Contributions are welcome! If you have suggestions for improvements or new features, please create an issue or submit a pull request. 💡
This project is licensed under the MIT License. See the LICENSE file for details. 📜
For any questions or inquiries, feel free to contact.
- Name: Asif Ahmed
(asRot0)
- LinkedIn: in/asifahm9090