
Ich habe einen Node.js-Server (irrelevant), der Bildbearbeitung mit ImageMagick durchführt. Grundsätzlich kann ich ein Bild per POST an den Server senden und er antwortet mit dem transformierten Bild.
Im Moment schreibe ich einfach das POSTed-Bild in eine Datei und starte ImageMagick als untergeordneten Prozess, der das transformierte Bild in eine neue Datei schreibt und diese neue Datei dann an den POSTer sendet. Ich möchte das Schreiben auf die Festplatte vermeiden, um die Dinge zu beschleunigen. Kann dieser ImageMagick-Prozess Streaming-Eingaben akzeptieren und mir einen Stream als Ausgabe geben?
Dies ist beispielsweise einer der kompliziertesten Befehle, die ich derzeit verwende:
/usr/local/opt/imagemagick/bin/convert \( '/Users/shawn/Work/vigour-img/originals/7ajy06' -resize '150x150^' -gravity 'Center' -crop '150x150+0+0' \) \( '/Users/shawn/Work/vigour-img/images/avatarMask.png' -resize '150x150' -gravity 'Center' \) -compose 'CopyOpacity' -composite '/Users/shawn/Work/vigour-img/out/1bl6jm9.png'
Dies basiert auf /Users/shawn/Work/vigour-img/originals/7ajy06
und /Users/shawn/Work/vigour-img/images/avatarMask.png
ist auf der Festplatte vorhanden und schreibt das Ergebnis in /Users/shawn/Work/vigour-img/out/1bl6jm9.png
.
Wenn ich stattdessen die Eingabedateien streamen und das Ergebnis als Stream erhalten könnte, wäre es nicht erforderlich, auf die Festplatte zu schreiben, was die Leistung (glaube ich) erheblich verbessern würde.