Skip to content

๐Ÿ–ผ๏ธ PhotoFly: A versatile image viewing and editing application built with Python and customtkinter. Seamlessly view ๐Ÿ‘€, rotate ๐Ÿ”„, adjust colors ๐ŸŽจ, apply effects โœจ, and export images in multiple formats (JPG & PNG) ๐Ÿ“ธ. Enjoy real-time preview ๐Ÿ–ฅ๏ธ and customizable settings โš™๏ธ for an enhanced viewing and editing experience.

License

Notifications You must be signed in to change notification settings

asRot0/Image-viewer-and-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Image Viewer and Editor (PhotoFly)

Project Logo

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.


๐Ÿš€ Features

  • 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.โ„น๏ธ

๐Ÿ› ๏ธ Installation

To set up the Image Viewer and Editor on your local machine, follow these steps:

  1. Clone the Repository:
    git clone https://github.com/asRot0/Image-viewer-and-editor.git
  2. Navigate to the Project Directory:
    cd Image-viewer-and-editor
  3. Install Dependencies: Make sure you have Python installed. Then install the required libraries using pip
    pip install -r requirements.txt
  4. 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

๐Ÿ–ผ๏ธ Usage

Launching the Application

After running run.py, the main interface will appear.

Opening an Image

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.

Editing the 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. โœจ

Exporting the Edited Image

  • Use the Export section to specify a name and choose the format (JPG or PNG). Click the save button to export your edited image. ๐Ÿ’พ

๐Ÿงฉ Code Structure

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

๐Ÿ–Œ๏ธ Key Files and Their Responsibilities

  • 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. ๐Ÿ–ผ๏ธ


๐Ÿ–ฅ๏ธ Components Overview

Main Components ๐ŸŒ

  • 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. โš™๏ธ


๐Ÿ”ง Detailed Functionality

Position Frame

  • 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).

Color Frame

  • 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).

Effects Frame

  • 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.

Export Frame

  • 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.

๐Ÿ“ธ Screenshots

Main Interface

screenshots All screenshots


๐Ÿ› Known Issues

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! ๐Ÿ’ปโœจ


๐Ÿค Contributing

Contributions are welcome! If you have suggestions for improvements or new features, please create an issue or submit a pull request. ๐Ÿ’ก

๐Ÿ“œ License

This project is licensed under the MIT License. See the LICENSE file for details. ๐Ÿ“œ

๐Ÿ“ž Contact

For any questions or inquiries, feel free to contact.


About

๐Ÿ–ผ๏ธ PhotoFly: A versatile image viewing and editing application built with Python and customtkinter. Seamlessly view ๐Ÿ‘€, rotate ๐Ÿ”„, adjust colors ๐ŸŽจ, apply effects โœจ, and export images in multiple formats (JPG & PNG) ๐Ÿ“ธ. Enjoy real-time preview ๐Ÿ–ฅ๏ธ and customizable settings โš™๏ธ for an enhanced viewing and editing experience.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published