Batch-Add-Wasserzeichen mit eindeutigem Text für jedes Bild

Ich habe über 500 Bilder, die ich mit einem Wasserzeichen mit Text versehen muss, der für jedes Bild anders sein wird. Wenn ich beispielsweise ein Bild von einem Gebäude habe, möchte ich den Namen oder die Adresse dieses Gebäudes mit einem Wasserzeichen versehen.

Ich habe die eindeutigen Informationen in einer Excel-Datei mit dem Bilddateinamen gespeichert.

Jetzt, nachdem ich in den letzten drei Tagen gesucht habe, bin ich nicht auf ein Tool gestoßen, das eindeutigen Text für jedes Bild mit einem Wasserzeichen versehen kann.

Ich arbeite hauptsächlich unter Windows und kann diesen Vorgang bequem über die Befehlszeile ausführen. Ich bin auch bereit, etwas Geld für ein Tool auszugeben, um dies zu tun, damit es nicht kostenlos und/oder Open Source sein muss.

Willkommen bei den Softwareempfehlungen! Wir brauchen ein bisschen mehr Informationen, um hier gute Empfehlungen geben zu können. Sehen Sie sich bitte Was ist erforderlich, damit eine Frage „genügend Informationen“ enthält? Bearbeiten Sie dann bitte Ihre Frage und prüfen Sie, ob Sie mindestens einige dieser Verbesserungen integrieren können: Welches Betriebssystem oder ist eine Web-App akzeptabel? Nur GUI oder nur CLI oder beides?
Danke, das hätte ich machen sollen, bevor ich gepostet habe. Ich habe diese Frage ursprünglich auf photo.stackexchange.com gepostet, aber das schien einige Leute dort drüben zu verärgern.
@njackson.gis Nicht "verärgert". Es war einfach der falsche Ort dafür.
@mattdm Ich habe nicht über deinen Beitrag gesprochen. es ist das hilfreiche. Ich bezog mich auf die anderen Beiträge. Ich hatte auf dieser Seite viele Fragen zum Wasserzeichen und zur Verarbeitung von Bildern gesehen, und deshalb habe ich mich entschieden, zuerst dort zu posten. danke für Ihren Vorschlag!
@njackson.gis Ist das Lesen der Excel-Datei eine Voraussetzung oder wäre es in Ordnung, diese als CSV oder ein anderes Format speichern zu müssen?
@NickWilde Excel ist keine Voraussetzung. Ich war gerade dabei, es in ein einfaches Textformat zu konvertieren, damit ich versuchen konnte, es in ImageMagick zu verwenden.

Antworten (2)

Sie können dies mit dem Befehl zum Konvertieren von ImageMagick aus einer Stapeldatei tun, mit dem Sie Text auf eine Datei anwenden, den Typ konvertieren, neu skalieren usw., alles in einem einzigen Vorgang - es ist auch kostenlos.

z.Bconvert rose.jpg -draw "text 25,60 'By Any Other Name'" outdir/rose.jpg

Alternativ können Sie python , PIL (die Python-Bildbibliothek) oder Pillow (eine Verzweigung von PIL) und xlrd verwenden , um den gesamten Job automatisch zu erledigen, einschließlich des Lesens aus den Excel-Dateien. Dies sind ebenfalls kostenlose Tools, erfordern jedoch etwas mehr Einarbeitung von Ihrer Seite. Ich würde dringend empfehlen, eine Sicherungskopie aller Ihrer Bilder zu erstellen, bevor Sie irgendwelche Operationen an ihnen versuchen.

Aktualisiert:

Nur um hinzuzufügen - einige der Kommentare zur ursprünglichen Frage zu sehen , dass alle Tools, die ich in der obigen Antwort erwähne, sind:

  • Kostenlos (kostenlos)
  • Kostenlos (Open-Source)
  • Plattformübergreifend, insbesondere:
    • ImageMagik -Kommandozeilen-Grafikbearbeitung :
      • Binäre Downloads für Unix, Mac OS(X), Windows & Linux
      • Quelle verfügbar, sodass Sie sie wahrscheinlich für fast alles andere erstellen können.
    • Programmiersprache Python :
      • Windows-Binärdateien verfügbar
      • Normalerweise bereits installiert auf Betriebssystemen, Linux, Unix und vielen anderen
      • Dito die Quelle Quelle
    • PIL- / Kissen -Bildbearbeitungsbibliothek :
      • Für Windows verfügbare Binärdateien
      • Wird aus der Quelle installiert, wenn Sie Python/PIP auf anderen Plattformen haben
    • XLRD- Python-Excel-Reader-Bibliothek
      • Die Quellverteilung funktioniert auf jeder Python-Plattform
Steve, das macht den Trick. Ich habe gerade mein Excel in .txt konvertiert und dann eine Batchdatei erstellt, um den Text hinzuzufügen. Danke für den Hinweis auf diese Software!
Drüse zu hören, dass es bei dir funktioniert hat @njackson.gis

Vielleicht zu spät, aber ich bin vor 2 Wochen über diese Frage gestolpert und habe durch Programmieren eine Lösung gefunden:

Ich habe es geschafft, ein ähnliches Problem mit bulkWaterMark und .NET zu lösen, wo Sie dynamischen Text über eine Funktion namens Ausdrücke mit einem Wasserzeichen versehen können. Ich habe die Freeware-Version des Tools verwendet und ein kontextspezifisches Plug-in für benutzerdefinierte Ausdrücke codiert, das Daten aus einer XML-Datei lädt, in der Bildinformationen gespeichert sind. Dann habe ich einen Ausdruck geschrieben, der den Dateinamen des aktuellen Bildes als Parameter nimmt und ihn in der XML-Datei nachschlägt – alles in C#.

Das Problem war, dass keine SDK-Dokumentation verfügbar ist und ich bin mir auch nicht sicher, ob diese Plug-in-Schnittstelle offiziell öffentlich ist, aber Sie müssen nur 2 oder 3 Klassen erben und einige Methoden überschreiben, um Ihren eigenen Code in die Anwendung einzufügen. Es funktionierte damals wie ein Zauber.

Sie müssen nur auf die Assembly PMlabs.GrfX.Framework verweisen und Ihre eigene Implementierung dieser drei Klassen erstellen:

 - ExpressionsPlugIn<TExpressionContext>
 - ExpressionContext
 - Expression<TExpressionContext>

Die Expression-Klasse ist die Funktion, die aufgerufen wird, wenn ein Bild gerendert wird. Der Kontext enthält mehrere Ausdrücke und die Plug-in-Klasse enthält den Kontext. Stellen Sie nur sicher, dass Sie alles in der abstrakten Ausdrucksklasse implementieren, die anderen sind nur Installationscode.

Nachdem Sie Ihre Plug-in-Assembly kompiliert haben, legen Sie sie in den Ordner bin/plugins Ihrer bulkWaterMark-Installation.

Noch eine Bearbeitung: Ich habe heute einen vereinfachten Code meiner Lösung auf Github veröffentlicht: https://github.com/barnacleboy/bulkWaterMarkExpressionPlugin