Newsletter 365tipů můžete číst zdarma. Placené předplatné je dobrovolná podpora, která pomáhá webu pokračovat.
Podpořit 365tipů

TIP#2860: Jak na MacOS přidat stín k obrázkům (pokračování řešení pro Windows)

Před mnoha měsíci jsem využil ChatGPT k vytvoření .cmd skriptu pro Windows, který k obrázku přidá stín pomocí imagemagick. Ušetřil mi záplavu času, protože to používám prakticky neustále pro sociální sítě i jinde.

Potřeboval jsem nově ale to samé pro Mac OS v rámci velkého experimentu se stěhování se z Windows. Takže jsem prostě ChatGPT řekl “Mám ve Windows následující skript a potřeboval bych ho mít funkční na MacOS” a připojil původní skript.

ChatGPT ho obratem proměnila v funkční skript pro Bash.

#!/bin/bash

# Kontrola, zda je zadán vstupní soubor
if [ -z "$1" ]; then
  echo "Usage: $0 <image-file>"
  exit 1
fi

# Získání názvu souboru a jeho cesty
input_file="$1"
cdpath=$(dirname "$input_file")
myfilename=$(basename "$input_file")

# Přidání stínu pomocí ImageMagick
output_file="$cdpath/shadowed-$myfilename"
magick "$input_file" -background none -flatten \( +clone -background black -shadow 80x8+0+0 \) +swap -background white -layers merge +repage "$output_file"

echo "Shadow added and saved to $output_file"

Zároveň poskytla i postup co dál

  • uložit jako add_shadow.sh 
  • poté umožnit spustitelnost (chmod +x add_shadow.sh)
  • upozornila i že je nutné přidat imagemagick (brew install imagemagick)

Na Mac OS mám iTerm2 (ale můžete použít i Terminal), takže první co jsem udělal je, že jsem nainstalovat HomeBrew a poté přidal imagemagick

Poté  jsem si v domovském adresáři vytvořil složku MyScripts, vstoupil do ní a pomoci nano add_shadow.sh jsem vytvořil skript, uložil, nastavil spustitelnost. 

Jediný nedostatek ten výše uvedený script měl, že magick není dostupné napříč systémem, je tedy nutné přidat /opt/homebrew/bin/magick a pak vše funguje okamžitě. Případně dořešit, aby bylo dostupné, na což by se stačilo zeptat ChatGPT.

PS: Screenshot skriptu v záhlaví obsahuje na počátku pozůstatky z ladění.