Skip to content

An open-source tool by GeekDZ to create unified branded social media posts with a fixed frame template.

License

Notifications You must be signed in to change notification settings

geekdz40/PostForge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–ΌοΈ Image Frame Processor - GeekDZ Edition

Python PyQt5 License GeekDZ

A professional, user-friendly GUI application for applying decorative frames to images. Built with PyQt5 and featuring a modern interface, this tool makes image processing accessible to everyone.

🌟 Features

🎨 Professional GUI Interface

  • Modern Design: Clean, intuitive interface with professional styling
  • Real-time Preview: See your selected image, frame, and final result before processing
  • Progress Tracking: Visual progress bar with status updates
  • Error Handling: Comprehensive error management with user-friendly messages

πŸ–±οΈ User-Friendly Controls

  • Drag & Drop Support: Easy file selection with file dialogs
  • Multiple Format Support: Works with PNG, JPG, JPEG, BMP, GIF, and TIFF files
  • Custom Output: Choose your own save location and filename
  • Responsive Design: Scalable interface that works on different screen sizes

⚑ Advanced Processing

  • High-Quality Resizing: Uses LANCZOS resampling for best image quality
  • Alpha Compositing: Professional image blending for perfect results
  • Background Processing: Non-blocking image processing to keep UI responsive
  • Automatic Frame Detection: Default frame.png support with custom frame selection

🎯 GeekDZ Branding

  • Club Logo Integration: Prominently displays GeekDZ branding
  • Professional Identity: Consistent branding throughout the application
  • Open Source Values: Represents GeekDZ's commitment to open source projects

πŸš€ Quick Start

Prerequisites

  • Python 3.7 or higher
  • pip (Python package installer)

Installation

  1. Clone or download the project:

    git clone https://github.com/geekdz40/PostForge
    cd image-frame-processor
  2. Create a virtual environment (recommended):

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. Install dependencies:

    pip install PyQt5 Pillow
  4. Run the application:

    python main.py

πŸ“– How to Use

Step 1: Launch the Application

Run python main.py to start the Image Frame Processor.

Step 2: Select Your Image

  1. Click the "πŸ“ Select Image" button
  2. Choose your image file from the file dialog
  3. See the preview in the right panel

Step 3: Choose a Frame

  1. The application defaults to frame.png if available
  2. Click "πŸ–ΌοΈ Select Frame" to choose a different frame
  3. Preview the frame in the interface

Step 4: Set Output Location (Optional)

  1. Click "πŸ’Ύ Choose Save Location" to specify where to save
  2. Or let the application auto-generate a filename

Step 5: Process Your Image

  1. Click the "πŸ”„ Process Image" button
  2. Watch the progress bar as your image is processed
  3. View the final result in the preview panel

πŸ—οΈ Project Structure

image-frame-processor/
β”œβ”€β”€ main.py                 # Main application file
β”œβ”€β”€ frame.png              # Default frame image
β”œβ”€β”€ GeekDZ.png             # GeekDZ club logo
β”œβ”€β”€ README.md              # This file
└── requirements.txt       # Python dependencies (optional)

πŸ› οΈ Technical Details

Dependencies

  • PyQt5: Modern GUI framework for Python
  • Pillow (PIL): Python Imaging Library for image processing
  • Python 3.7+: Core programming language

Key Components

  • ImageProcessor: Background thread for non-blocking image processing
  • ImageFrameApp: Main application window with comprehensive GUI
  • Modern Styling: Custom CSS styling for professional appearance
  • Error Handling: Robust error management and user feedback

Image Processing Pipeline

  1. Load Base Image: Opens and validates the selected image
  2. Resize to Frame: Scales image to match frame dimensions (478x522)
  3. Load Frame: Processes the frame image with alpha transparency
  4. Alpha Composite: Blends images using professional alpha compositing
  5. Save Result: Outputs high-quality PNG file

🎨 Customization

Adding Custom Frames

  1. Create or obtain frame images with transparent backgrounds (PNG format)
  2. Ensure frames are designed for 478x522 pixel images
  3. Use the "Select Frame" button to choose your custom frame

Modifying the Interface

The application uses Qt stylesheets for styling. You can customize:

  • Colors and themes in the get_stylesheet() method
  • Button sizes and fonts
  • Layout spacing and margins
  • Logo and branding elements

🏒 About GeekDZ

GeekDZ is a technology club dedicated to promoting open source software development and fostering innovation in the tech community. We believe in the power of collaboration and knowledge sharing to create better software for everyone.

🌐 Official Website

Visit us at: https://geekdz40.github.io/

πŸ’‘ Our Mission

  • Open Source Advocacy: Supporting and contributing to open source projects
  • Community Building: Creating a vibrant tech community in Algeria and beyond
  • Knowledge Sharing: Organizing workshops, tutorials, and collaborative projects
  • Innovation: Encouraging creative solutions and technological advancement

🀝 Open Source Commitment

GeekDZ is committed to open source values:

  • Transparency: All our projects are open and accessible
  • Collaboration: We welcome contributions from developers worldwide
  • Education: Sharing knowledge to help others learn and grow
  • Innovation: Using open source tools to create impactful solutions

🀝 Contributing

We welcome contributions from the community! Here's how you can help:

πŸ› Report Bugs

  • Use the issue tracker to report bugs
  • Include detailed steps to reproduce the issue
  • Provide system information and error messages

πŸ’‘ Suggest Features

  • Open an issue to discuss new feature ideas
  • Explain the use case and expected behavior
  • Consider contributing the implementation

πŸ”§ Submit Pull Requests

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ Improve Documentation

  • Fix typos and improve clarity
  • Add examples and use cases
  • Translate documentation to other languages

πŸ“ž Contact & Support

🌐 Get Connected

  • Website: https://geekdz40.github.io/
  • GitHub: Follow our organization for more open source projects
  • Community: Join our tech community and collaborate with fellow developers

πŸ†˜ Get Help

  • Check the documentation and FAQ
  • Search existing issues for solutions
  • Create a new issue for bugs or feature requests
  • Visit our website for additional resources

πŸ’¬ Join the Community

GeekDZ welcomes developers of all skill levels:

  • Beginners: Learn from experienced developers
  • Experienced: Share knowledge and mentor others
  • Contributors: Help build amazing open source projects
  • Users: Provide feedback and suggestions

πŸ† Acknowledgments

  • GeekDZ Club Members: For their support and collaboration
  • Open Source Community: For the amazing tools and libraries
  • PyQt5 Team: For the excellent GUI framework
  • Pillow Contributors: For the powerful image processing library

Made with ❀️ by GeekDZ Club

Empowering innovation through open source collaboration

GeekDZ

About

An open-source tool by GeekDZ to create unified branded social media posts with a fixed frame template.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages