logo-overlay

n8n node for placing logos on images and videos

Package Information

Released: 6/25/2025
Downloads: 0 weekly / 25 monthly
Latest Version: 1.0.4

Documentation

n8n-nodes-logo-overlay

Eine benutzerdefinierte n8n-Node zum Platzieren von Logos auf Bildern und Videos.

Features

  • Bild-Overlay: Platziert Logos auf Bildern mit Unterstützung für verschiedene Formate
  • Video-Overlay: Fügt Logos über alle Frames eines Videos hinzu
  • Flexible Positionierung: X/Y-Koordinaten in Pixeln
  • Logo-Größenanpassung: Optionale Breiten- und Höhenanpassung
  • Base64-Output: Gibt verarbeitete Dateien als Base64-String zurück
  • Robuste Fehlerbehandlung: Umfassendes Error-Handling und Cleanup

Systemanforderungen

  • FFmpeg: Für Video-Verarbeitung erforderlich
    # macOS
    brew install ffmpeg
    
    # Ubuntu/Debian
    sudo apt update && sudo apt install ffmpeg
    
    # Windows
    # Laden Sie FFmpeg von https://ffmpeg.org/download.html herunter
    

Installation

Lokale Entwicklung

  1. Abhängigkeiten installieren:

    npm install
    
  2. Node kompilieren:

    npm run build
    
  3. In n8n verwenden:

    # Option 1: Als Community Package installieren
    n8n start --packages=./dist
    
    # Option 2: In n8n-Entwicklungsumgebung kopieren
    cp -r dist/* ~/.n8n/nodes/
    

Als npm-Package (zukünftig)

npm install n8n-nodes-logo-overlay

Verwendung

Parameter

Parameter Typ Beschreibung Erforderlich
filePath String Pfad zur Bild- oder Videodatei
fileType Options image oder video
logoPath String Pfad zum Logo (PNG mit Transparenz empfohlen)
x Number X-Koordinate in Pixeln
y Number Y-Koordinate in Pixeln
logoWidth Number Breite des Logos (0 = Original beibehalten)
logoHeight Number Höhe des Logos (0 = Original beibehalten)

Beispiel-Workflow

{
  "nodes": [
    {
      "parameters": {
        "filePath": "/pfad/zu/image.jpg",
        "fileType": "image",
        "logoPath": "/pfad/zu/logo.png",
        "x": 50,
        "y": 50,
        "logoWidth": 100,
        "logoHeight": 50
      },
      "type": "n8n-nodes-logo-overlay.logoOverlay",
      "typeVersion": 1
    }
  ]
}

Output

Die Node gibt ein JSON-Objekt zurück:

{
  "base64": "iVBORw0KGgoAAAANSUhEUgAA...", // Base64-kodierte Datei
  "originalFile": "/pfad/zu/image.jpg",
  "logoFile": "/pfad/zu/logo.png", 
  "position": { "x": 50, "y": 50 },
  "fileType": "image"
}

Unterstützte Formate

Bilder

  • JPEG/JPG
  • PNG
  • WebP
  • TIFF
  • GIF (statisch)

Videos

  • MP4
  • MOV
  • AVI
  • MKV
  • WebM

Logos

  • PNG (empfohlen für Transparenz)
  • JPEG
  • WebP

Technische Details

Bild-Verarbeitung

  • Library: Sharp
  • Performance: Optimiert für hohe Geschwindigkeit
  • Memory: Effiziente Buffer-Verarbeitung

Video-Verarbeitung

  • Library: FFmpeg mit fluent-ffmpeg
  • Codec: H.264 mit optimierten Einstellungen
  • Qualität: CRF 23 (gute Balance zwischen Qualität und Dateigröße)

Temporäre Dateien

  • Automatisches Cleanup nach Verarbeitung
  • Verwendung des System-Temp-Verzeichnisses
  • UUID-basierte Dateinamen zur Vermeidung von Konflikten

Fehlerbehandlung

Die Node behandelt folgende Fehlerszenarien:

  • Datei nicht gefunden: Überprüfung der Existenz von Input- und Logo-Dateien
  • Ungültige Formate: Validierung der Dateitypen
  • FFmpeg-Fehler: Detaillierte Fehlermeldungen bei Video-Verarbeitung
  • Memory-Limits: Effiziente Buffer-Verwaltung
  • Cleanup-Fehler: Graceful Handling bei Temp-File-Problemen

Entwicklung

Build-Prozess

# TypeScript kompilieren
npm run build

# Entwicklungsmodus (Watch)
npm run dev

# Linting
npm run lint

# Code-Formatierung
npm run format

Projektstruktur

├── nodes/
│   └── LogoOverlay/
│       ├── LogoOverlay.node.ts    # Haupt-Node-Implementation
│       └── logoOverlay.svg        # Node-Icon
├── dist/                          # Kompilierte Dateien
├── package.json                   # Dependencies und Konfiguration
├── tsconfig.json                  # TypeScript-Konfiguration
└── gulpfile.js                    # Build-System

Lizenz

MIT

Beitragen

Contributions sind willkommen! Bitte öffnen Sie ein Issue oder Pull Request auf GitHub.

Support

Bei Problemen oder Fragen erstellen Sie bitte ein Issue im GitHub-Repository.

Discussion