Pixora is an academic image processing project built with C++, Qt 6, and Qt Quick/QML.
The project is a mini Photoshop-style desktop application designed to demonstrate core image processing concepts such as pixel manipulation, filtering, geometric transformations, image blending, cropping, resizing, and exporting edited images.
Although Pixora is built as an academic project, it also focuses on clean user experience through a modern cosmic-themed interface, animated intro screen, sample images, presets, history thumbnails, and compare mode.
Pixora allows users to load an image, apply different image processing filters, preview the result, compare the original image with the edited version, and export the final output.
The project combines:
- Academic image processing concepts
- C++ backend logic
- Qt Quick/QML frontend design
- File loading and exporting
- Interactive desktop application workflow
Add screenshots or a short demo GIF here.
Suggested screenshots to include:
- Intro screen
- Main interface
- Filter result
- Crop tool
- Compare mode
- Export dialog
Example assets location:
assets/
├── splash_pixora.png
├── ui_reference.png
└── samples/
- Load images from local storage.
- Export edited images.
- Supported export formats:
- PNG
- JPG
- BMP
- Unsaved-changes confirmation before closing or opening another image.
Pixora includes multiple filters and transformations:
- Grayscale
- Black & White threshold
- Invert colors
- Brightness adjustment
- Blur
- Purple tone
- Sunlight / warm tone
- TV effect
- Edge detection
- Frame / border
- Flip horizontal
- Flip vertical
- Rotate 90 degrees
- Rotate 180 degrees
- Rotate 270 degrees
- Crop
- Resize
- Merge images
- Apply filters step by step.
- Stack multiple edits on the same image.
- Undo edits.
- Redo edits.
- Reset image back to the original.
- View edit history using thumbnails.
- Compare original and edited image using compare mode.
- Modern cosmic-themed UI.
- Animated splash screen / intro.
- Filter descriptions in the inspector panel.
- Demo Mode with built-in sample images.
- Presets for quick editing styles.
- Custom frame color picker.
- Keyboard shortcuts:
Ctrl + O— Open imageCtrl + S— Save imageCtrl + Z— UndoCtrl + Y— Redo
Pixora includes ready-made presets:
- Warm Cinematic
- Vintage TV
- Soft Purple
- High Contrast B&W
Each preset applies a predefined image processing style to quickly demonstrate combined filter effects.
The project includes sample images so users can try the application immediately without searching for external images.
assets/samples/
├── sample_toys.jpg
├── sample_samurai.jpg
└── sample_sunset.jpg
- C++
- Qt 6
- Qt Quick / QML
- CMake
- stb_image
- stb_image_write
- Custom image processing logic
pixora-image-editor/
├── CMakeLists.txt
├── Image_Class.h
├── imageprocessor.cpp
├── imageprocessor.h
├── main.cpp
├── main.qml
├── README.md
├── .gitignore
├── assets/
│ ├── moon_real.jpg
│ ├── rocket_3d.jpg
│ ├── splash_pixora.png
│ ├── ui_reference.png
│ └── samples/
│ ├── sample_toys.jpg
│ ├── sample_samurai.jpg
│ └── sample_sunset.jpg
└── libs/
├── Image_Class.h
├── stb_image.h
└── stb_image_write.h
Pixora separates the project into two main parts:
The frontend is built using Qt Quick/QML.
main.qml handles:
- Application layout
- Buttons
- Dialogs
- Sliders
- Filter selection
- Inspector panel
- History thumbnails
- Compare mode UI
- Splash screen animation
The backend is built using C++.
imageprocessor.h exposes image processing functions to QML.
imageprocessor.cpp handles:
- Loading images
- Applying filters
- Pixel-level processing
- Image transformations
- Image merging
- Exporting results
main.cpp connects the C++ backend with the QML frontend and starts the Qt application.
This project was developed as an academic image processing application.
It demonstrates practical understanding of:
- RGB pixel manipulation
- Image filtering
- Thresholding
- Brightness adjustment
- Blurring
- Edge detection
- Image transformation
- Cropping and resizing
- Image blending
- GUI development using Qt
- C++ and QML integration
The goal is not only to build a working image editor, but also to understand how image processing operations work internally.
Before running the project, make sure you have:
- Qt 6 installed
- Qt Creator
- CMake
- MinGW or another supported C++ compiler
- Clone the repository:
git clone https://github.com/Nagy-API/baby-photoshop-cpp.git-
Open the project folder in Qt Creator.
-
Select a Qt 6 kit.
-
Configure the CMake project.
-
Build the project.
-
Run the application.
- Open Pixora.
- Choose an image from your device or use Demo Mode.
- Select a filter from the left panel.
- Adjust the intensity slider if the selected filter supports it.
- Click Apply Filter.
- Use history thumbnails to move between edit steps.
- Use Compare mode to compare the original and edited image.
- Export the final result as PNG, JPG, or BMP.
- Do not upload the
build/folder to GitHub. - Do not upload Qt Creator temporary files such as
.userfiles. - The project should be opened from the root folder that contains
CMakeLists.txt. - The assets folder must stay in the project because the UI and demo mode depend on it.
build/
.qtcreator/
*.user
*.autosave
*.tmp
.DS_Store
Thumbs.db
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
Makefile
*.exe
*.obj
*.o
*.dllPossible improvements for future versions:
- Add QThread for heavy image processing operations.
- Add real-time low-resolution preview while moving sliders.
- Add more filters such as contrast, saturation, sepia, and sharpen.
- Add drag-and-drop image loading.
- Add zoom and pan controls.
- Add before/after split-view export.
- Package the project as a Windows installer.
Through this project, the following skills are practiced:
- Building desktop applications with Qt
- Designing interfaces using QML
- Connecting QML with C++
- Working with image files
- Implementing image filters manually
- Managing project assets
- Structuring a C++ GUI project
- Preparing a project for GitHub and portfolio presentation
Recommended GitHub topics:
cpp
qt
qml
image-processing
computer-vision
desktop-app
qt-quick
filters
photo-editor
pixel-manipulation
stb-image
academic-project
Created by Pixora's Team as an academic C++ / Qt image processing project.
This project is for academic and learning purposes.