Ich habe eine Reihe von Bildern (meistens Screenshots, aber das spielt keine Rolle), denen ich einen Schlagschatten hinzufügen möchte . (Der Grund dafür ist, einen schönen Rand hinzuzufügen, da sie einen weißen Hintergrund haben und ich sie auf einem weißen Hintergrund verwende.)
Mein aktueller Arbeitsablauf ist:
.png
Datei in Inkscape,Filters/Shadow and glow/Drop shadow
,3px
Unschärferadius mit einem 2px 2px
Versatz,.png
.Dies geschieht jedoch alles manuell… und es ist ziemlich ärgerlich, wenn ich mehr als… 2 Bilder habe.
Ich weiß, dass Inkscape mit der Befehlszeilenschnittstelle (CLI) verwendet werden kann (ich bin auf Ubuntu 18.04). Ich weiß, wie man Dateien importiert und exportiert. Allerdings weiß ich nicht, wie man einen bestimmten Filter anwendet.
Folgendes habe ich versucht, es hat nicht funktioniert:
$ inkscape --verb org.inkscape.effect.filter.ColorDropShadow --verb FileSave --verb FileClose image.png
Können Sie mir daher sagen, wie man einem Bild mit CLI Schlagschatten hinzufügt?
(Dies kann entweder mit Inkscape oder einer anderen Open-Source-Software unter Linux erfolgen.)
Anstatt das Vektorgrafik-Tool Inkscape zu verwenden, würde ich das ultimative Befehlszeilen-Tool für Bitmap-Manipulationen empfehlen: ImageMagick .
Es sollte über Ihre Distributions-Repositories verfügbar sein. Dieses Tool enthält viele Effekte, einschließlich der Erzeugung eines Schlagschattens.
Dies geschieht grundsätzlich mit der convert -shadow
Option, allerdings müssen Sie dann das generierte Hintergrundbild wieder mit dem Original kombinieren. Dies kann alles in einem einzeiligen Befehl mit der -layers merge
Option:
convert input.jpg \( +clone -background black -shadow 50x10+15+15 \) +swap -background none -layers merge +repage shadow.png
Nützliche Optionen für den Schlagschatten werden mit -background <color>
und bestimmt -shadow percent-opacity{xsigma}{+-}x{+-}y{%}
. Das obige Beispiel erzeugt einen grauen Schlagschatten mit 50 % Deckkraft, 10 % Größe und x=+15 % y=+15 % Versatz:
Quelle der obigen Informationen und weitere Optionen und verschiedene Schattentypen finden Sie unter:
Basierend auf der Antwort von Takkat ist hier die Bash-Funktion, die ich meiner hinzugefügt habe .bashrc
:
function dropshadow () {
filename=$(basename -- "$1")
# extension="${filename##*.}"
basename="${filename%.*}"
# we want to enforce png (even if .jpg as input)
suffix="_shadow.png"
convert "$1" \( +clone -background black -shadow 50x10+5+5 \) +swap -background none -layers merge +repage "$basename$suffix"
}
dropshadow <yourfile.ext>
,<yourfile>_shadow.png
in Ihrem aktuellen Arbeitsverzeichnis.
ebosi
$ inkscape --verb org.inkscape.effect.filter.ColorDropShadow --verb FileSave --verb FileClose image.png
aber es funktioniert nicht.joojaa
Moini
sebix
WARNING: ignoring verb org.inkscape.effect.filter.ColorDropShadow - GUI required for this verb.
Moini
Moini
Moini
ebosi