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.
- 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
- 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
- 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
- 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
- Python 3.7 or higher
- pip (Python package installer)
-
Clone or download the project:
git clone https://github.com/geekdz40/PostForge cd image-frame-processor
-
Create a virtual environment (recommended):
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install PyQt5 Pillow
-
Run the application:
python main.py
Run python main.py
to start the Image Frame Processor.
- Click the "π Select Image" button
- Choose your image file from the file dialog
- See the preview in the right panel
- The application defaults to
frame.png
if available - Click "πΌοΈ Select Frame" to choose a different frame
- Preview the frame in the interface
- Click "πΎ Choose Save Location" to specify where to save
- Or let the application auto-generate a filename
- Click the "π Process Image" button
- Watch the progress bar as your image is processed
- View the final result in the preview panel
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)
- PyQt5: Modern GUI framework for Python
- Pillow (PIL): Python Imaging Library for image processing
- Python 3.7+: Core programming language
- 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
- Load Base Image: Opens and validates the selected image
- Resize to Frame: Scales image to match frame dimensions (478x522)
- Load Frame: Processes the frame image with alpha transparency
- Alpha Composite: Blends images using professional alpha compositing
- Save Result: Outputs high-quality PNG file
- Create or obtain frame images with transparent backgrounds (PNG format)
- Ensure frames are designed for 478x522 pixel images
- Use the "Select Frame" button to choose your custom frame
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
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.
Visit us at: https://geekdz40.github.io/
- 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
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
We welcome contributions from the community! Here's how you can help:
- Use the issue tracker to report bugs
- Include detailed steps to reproduce the issue
- Provide system information and error messages
- Open an issue to discuss new feature ideas
- Explain the use case and expected behavior
- Consider contributing the implementation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Fix typos and improve clarity
- Add examples and use cases
- Translate documentation to other languages
- Website: https://geekdz40.github.io/
- GitHub: Follow our organization for more open source projects
- Community: Join our tech community and collaborate with fellow developers
- 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
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
- 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