Ein KI-gestütztes Tool, das automatisch schöne, kontextbezogene Bildunterschriften im Instagram-Stil erstellt – direkt von deinem Desktop, auf allen wichtigen Plattformen.
In einer Welt voller Fotos ist es oft die Bildunterschrift, die auf Social Media den Unterschied macht.
Egal ob du Reiseblogger, Content Creator oder Gelegenheits-Abenteurer bist – die richtigen Worte zu finden, ist manchmal schwerer, als das perfekte Foto zu schießen.
✨ Features
- 🧠 OpenAI Vision-Unterstützung zum Erkennen von Bildinhalten
- 🌍 Mehrsprachige Ausgabe (z. B. Englisch, Deutsch, Spanisch)
- 📁 Verarbeitung von mehreren Bildern aus Ordnern
- 🧾 JSON-Export inklusive EXIF- und KI-Metadaten
- ⚙️ Konsolen- und GUI-Varianten (Avalonia & WPF)
- ☁️ Unterstützung für OpenAI- und Azure-OpenAI-Backends
🧱 Architekturüberblick
PicCaptionr ist sauber strukturiert – mit DI-fähigen Servicelayern und plattformspezifischen UI-Layern:
PicCaptionr.ConsoleApp # Konsolen-App (Cross-Platform)
PicCaptionr.WPFApp # WPF UI für Windows
PicCaptionr.AvaloniaApp # Cross-Platform UI mit Avalonia
PicCaptionr # Gemeinsame Services, Modelle und Interfaces
Bash🖼️ So funktioniert’s
Jedes Foto durchläuft folgende Ablauf:
- EXIF-Metadaten auslesen (z. B. GPS, Zeitstempel)
- Bildgröße für effiziente KI-Abfragen anpassen
- Prompt mit optionalem Benutzereingaben erstellen
- OpenAIs Vision API aufrufen, um das Foto zu analysieren
- Vorschlag für eine Bildunterschrift erhalten
- Alle Daten (inklusive Tokens und Metadaten) als JSON exportieren
🔍 Beispiel: Verarbeitung eines Bildes
Die Kernlogik liegt im ProcessService
oder im entsprechenden ViewModel. Hier eine vereinfachte Version:
public async Task StartProcessAsync()
{
string[] imageFiles = Directory.GetFiles(pictureFolderPath)
.Where(file => imageExtensions.Contains(Path.GetExtension(file)))
.ToArray();
foreach (var image in imageFiles)
{
ImageMetaDataResponse meta
= await _imageService.ExtractMetaDataAsync(image);
byte[] resizedImage
= await _imageService.ResizeImageAsync(image);
string prompt
= _promptService.CreatePrompt(meta, userInput);
AIResponse aiResponse
= await _chatService.MakeVisionRequestAsync(resizedImage, prompt);
instagramItems.Add(new InstagramItem(
image,
meta,
aiResponse));
}
_storageService.WriteData(outputPath, instagramItems);
}
C#💾 Beispielausgabe
Jedes Bild erzeugt einen JSON-Eintrag wie:
[
{
"ImageName": "tsjreiseblog_28-Jul-2025.jpg",
"ImageMetaData": {
"CaptureDate": "2025-07-28",
"Latitude": null,
"Longitude": null
},
"OpenAIResponse": {
"RawContent": "Exploring the charming streets and historic sights of Civitavecchia, ...",
"FormattedContent": "Exploring the charming streets and historic sights of ...",
"InputTokens": 800,
"OutputTokens": 94
}
}
]
JSON💻 Plattformunterstützung
Variante | Beschreibung | Plattformen |
Console App | Interaktive CLI | Windows, Linux, macOS |
WPF App | Native Desktop-UI | Windows |
Avalonia App | Cross-Platform GUI | Windows, Linux, macOS |
🧑💻 Von WPF zu Avalonia
Ursprünglich habe ich die WPF-Version entwickelt, um schnell eine einfache, benutzerfreundliche UI für Windows bereitzustellen. Das hat super funktioniert – aber schon bald wurde klar: Eine Cross-Platform-Lösung ist nötig, besonders für macOS- und Linux-Nutzer.
Darum habe ich eine zweite Version mit Avalonia gebaut – einem UI-Framework ähnlich wie WPF, das aber überall läuft. Normalerweise würdest du nicht beide Varianten pflegen, aber für dieses Projekt war es eine tolle Lernerfahrung und ein gutes Beispiel für modulare Architektur mit geteilten Services.
📸 UI-Einblicke



🚀 Get Started
git clone https://github.com/tsjdev-apps/piccaptionr.git
cd .\piccaptionr\src\PicCaptionr.ConsoleApp
dotnet run
Bash✅ CI/CD
Dank GitHub Actions gibt es fertige Builds für jede App:
- 🟩 Console App (win-x64, linux-x64, osx-x64, osx-arm64)
- 🟦 WPF App (nur Windows)
- 🟨 Avalonia App (Cross-Platform)
🧠 Fazit
PicCaptionr begann als kleines Tool, um während einer Weltreise hunderte Fotos zu betiteln – und ist heute ein Hilfsprogramm für Content Creator, Influencer und Reisebegeisterte.
Es ist schnell. Es ist flexibel. Und es ist Open Source.
Gib dem Projekt einen ⭐ auf GitHub und erzähle deine eigenen Fotogeschichten mit KI!