Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Impaste: Bilder in macOS Terminal-Befehle einfügen

Hast du dich jemals gefragt, wie du Bilder aus der Zwischenablage direkt in einen Befehl im macOS Terminal einfügen kannst? Hier ist die Lösung!

Von Haus aus funktioniert pbpaste nur mit Textdaten. Wenn du also einen Teil eines Screenshots in deine Zwischenablage kopierst (mit CleanShot 😵) und dann den folgenden Befehl ausführst, erhältst du eine 0-Byte-Datei:

pbpaste > /tmp/screenshot.png

Dank einiger Hinweise von Feraidoon Mehri in einem GitHub-Issue und etwas Unterstützung durch ChatGPT und Claude 3 Opus habe ich das folgende Skript entwickelt.

#!/bin/zsh

# Einzigartigen temporären Dateinamen generieren
tempfile=$(mktemp -t clipboard.XXXXXXXXXX.png)

# Bild aus der Zwischenablage in die temporäre Datei speichern
osascript -e 'set theImage to the clipboard as «class PNGf»'
 -e "set theFile to open for access POSIX file \"$tempfile\" with write permission" 
 -e 'write theImage to theFile'
 -e 'close access theFile'

# Bilddaten an stdout ausgeben
cat \"$tempfile\"

# Temporäre Datei löschen
rm \"$tempfile\"

Speichere dieses Skript als ~/.local/bin/impaste auf deinem Rechner (dieser Ordner muss in deinem $PATH sein) und mache es ausführbar mit:

chmod 755 ~/.local/bin/impaste

Nun kannst du ein Bild in deine Zwischenablage kopieren und diesen Befehl ausführen:

impaste > /tmp/image.png

Oder du leitest die Ausgabe von impaste an jeden beliebigen Befehl weiter, der Bilder akzeptiert.

Anwendungsbeispiele

Sagen wir, du möchtest das Bild direkt zu einem Cloud-Speicher hochladen oder es in einem anderen Programm verwenden. Hier sind einige praktische Beispiele, wie du impaste nutzen kannst:

  • Bilder zu Imgur hochladen:
impaste | curl -F "image=@-" https://api.imgur.com/3/upload --header "Authorization: Client-ID YOUR_CLIENT_ID"
  • Bilder mit ImageMagick bearbeiten:
impaste | convert png:- -resize 50% resized_image.png

Diese Beispiele zeigen, wie du die Leistung von impaste nutzen kannst, um Bilder aus der Zwischenablage in verschiedenen Kontexten weiterzuverarbeiten und zu verwenden.