Skip to content

Ugur515/OnePic-Qt-Image-Editor

Repository files navigation

OnePic - Qt Image Editor

C++ Qt Status

OnePic ist ein funktionsreicher Bildeditor, der in C++ mit dem Qt-Framework entwickelt wurde.

Dieses Projekt entstand im Rahmen des Moduls "Entwicklung von Desktop Anwendungen" (EDA) an der Technischen Hochschule Köln (TH Köln). Ziel war es, eine performante Desktop-Anwendung zu erstellen.


Features

Die Anwendung bietet eine breite Palette an Bildbearbeitungsfunktionen:

🛠 Basis-Werkzeuge

  • Datei-Handling: Öffnen und Speichern von gängigen Bildformaten (JPG, PNG, BMP) sowie Laden von Bildern direkt via URL.
  • Navigation: Intuitives Zoomen (Mausrad/Touchpad) und Panning (Rechtsklick-Verschieben).
  • Historie: Vollständiges Undo/Redo-System für alle Operationen.

Bildmanipulation

  • Transformation:
    • Bild drehen (90° Schritte) und spiegeln.
    • Smart-Resize (Skalieren per Dialog oder "Freies Transformieren" an den Ecken).
    • Zuschneiden (Crop) per Maus-Auswahl.
  • Anpassungen:
    • Helligkeit & Kontrast (mit Echtzeit-Vorschau und LUT-Performance-Optimierung).
    • Automatische Helligkeitskorrektur.
    • Histogramm-Anzeige (Live-Analyse der Helligkeitsverteilung).

Filter & Effekte

  • Filter-Pipeline: Invertieren, Sepia, Graustufen und Schärfen (Convolution Matrix).
  • Comic-Look: Ein Algorithmus, der Kantenfindung (Sobel-Operator) mit Farbreduktion (Posterization) kombiniert.
  • Color Splash: Ein interaktives Tool, bei dem eine Farbe im Bild ausgewählt wird und der Rest des Bildes in Graustufen umgewandelt wird (basierend auf euklidischer Farbdistanz).

Technische Highlights

Für Dozenten und Entwickler sind folgende Implementierungsdetails interessant:

  • Architektur: Strikte Trennung von Daten und GUI.
    • ImageModel: Verwaltet die Bilddaten, den Undo-Stack und die Pixel-Berechnungen.
    • ImageView: Ein benutzerdefiniertes Widget (erbt von QLabel), das Koordinaten-Transformationen für Zoom/Crop und Maus-Events verwaltet.
  • Performance:
    • Verwendung von Look-Up-Tables (LUT) für Helligkeit/Kontrast, um unnötige Rechenoperationen pro Pixel zu vermeiden.
    • Preview-Mode: Während Regler verschoben werden, wird auf einer verkleinerten Kopie gerechnet, um das UI flüssig zu halten.
  • Algorithmen: Manuelle Implementierung von Bildverarbeitungsalgorithmen (Sobel-Operator für Kanten, Histogramm-Berechnung) ohne Nutzung externer "Black-Box"-Bibliotheken wie OpenCV.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors