A desktop image editing application built with Python and PyQt5, offering a rich set of drawing tools, shape tools, image filters, and effects.
- Overview
- Key Features
- Keyboard Shortcuts
- Screenshots (Conceptual)
- System Requirements & Dependencies
- Installation
- Running the Application
- File Structure (Actual)
- Contributing
- License
- Author & Contact
Professional Paint Editor, created by Adrian Lesniak, is a desktop application for image editing, offering a wide set of drawing, shape, filter, and effect tools. Built in Python using PyQt5, it provides a modern, bright, and user-friendly interface. The program allows you to draw, edit, apply filters, undo/redo changes, and save or open image files. It also features error logging and remembers the user's last settings.
What's new:
- Bright, pastel interface with icons and decorative elements
- Info bar with menu descriptions and author
- Action feedback: after each operation, a message is shown and you return to the menu
- Error logging system to file
- Saving and loading user settings
- Brush: Free-form drawing with customizable brush size.
- Eraser: Erase portions of the image.
- Spray: Simulate a spray paint effect.
- Line Tool: Draw straight lines.
- Rectangle Tool: Draw rectangles.
- Circle/Ellipse Tool: Draw circles and ellipses.
- Fill Tool (Paint Bucket): Fill areas with a selected color.
- Text Tool: Add text overlays on the image.
- Gradient Tool: Create smooth color transitions.
- Polygon Tool: Draw custom multi-sided shapes.
- Selection Tool: (rectangular selection)
- Blur: Apply blur effect.
- Sharpen: Enhance sharpness.
- Grayscale: Convert to grayscale.
- Invert Colors: Invert all colors.
- Brightness Adjustment: Modify brightness.
- Contrast Adjustment: Alter contrast.
- Color Picker: Select foreground and background colors.
- File Operations:
- Create a New Image (Ctrl+N).
- Open image files (Ctrl+O) (PNG, JPG, BMP).
- Save the current image (Ctrl+S).
- Undo/Redo Support:
- Undo (Ctrl+Z).
- Redo (Ctrl+Y).
- Canvas Management: Central drawing area.
- Zoom & Pan: (Mouse wheel and spacebar supported).
- User Settings: Remembers last used color and tool.
- Error Logging: Logs errors to
error_log.txt
. - Info Bar: Shows menu options and author at the top.
- Action Feedback: After each action, a message is shown and user returns to menu.
- Bright, modern UI: Pastel colors, icons, decorative frames.
- Multi-platform: Works on Windows, Linux, macOS.
- Planned: Layer support (not yet implemented).
Ctrl + N
: New ImageCtrl + O
: Open ImageCtrl + S
: Save ImageCtrl + Z
: UndoCtrl + Y
: Redo- Space: Pan canvas
- Mouse wheel: Zoom canvas
Example screenshots of the Professional Paint Editor application, including: the main interface with a canvas, toolbars, menu bar, color picker, and examples of drawing tools and image effects being applied.
- Python: Version 3.6 or higher.
- Libraries:
PyQt5
: GUI framework.Pillow
: Image file loading, saving, and manipulation.
- Windows, macOS, Linux (multi-platform).
-
Ensure Python 3.6+ is Installed: Verify by typing
python --version
orpython3 --version
in your terminal. If not installed, download from python.org. -
Clone or Download the Repository:
git clone <repository-url> cd <repository-directory>
-
Set Up a Virtual Environment (Recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Required Libraries:
pip install PyQt5 Pillow
- Navigate to the project directory (with
main.py
). - Activate your virtual environment (if used).
- Run:
python main.py
main.py
: Main script, initializes the app, sets up window, menu, toolbars, color picker, and integrates all logic.canvas.py
: Main drawing canvas widget and image logic (drawing, filters, file operations).tools.py
: ToolBar logic and tool selection.color_picker.py
: Color picker widget.error_logger.py
: Error logging to file.README.md
: This documentation file.LICENSE
: License info.
- GUI Framework: Built using PyQt5.
- Image Processing: Pillow (PIL fork) for image manipulation.
- Object-Oriented Design: Classes for tools, canvas, color picker, etc.
- Event Handling: PyQt5 signals/slots for user actions.
- Performance: Undo/redo stack, efficient drawing, and filter application.
- Error Logging: All errors are logged to
error_log.txt
. - User Experience: Bright, modern UI, icons, info bar, and feedback after actions.
Contributions to Professional Paint Editor are highly encouraged! If you have ideas for:
- New drawing tools or effects
- Layer system (planned)
- UI/UX improvements
- Performance enhancements
- More file formats
- Documentation
- Fork the repository.
- Create a new branch for your feature (
git checkout -b feature/LayerSystem
). - Make your changes.
- Commit (
git commit -m 'Feature: ...'
). - Push (
git push origin feature/LayerSystem
). - Open a Pull Request.
Please ensure your code is well-commented, follows Python best practices (PEP 8), and includes type hints where appropriate.
This project is licensed under the MIT License. See the LICENSE file for details.
Application concept by Adrian Lesniak. For questions, feedback, or issues, please open an issue on the GitHub repository or contact the repository owner.
🖌️ Unleash your creativity with a powerful Python-based paint editor!