๐ฉ Perform rotate and merge operations on images within a specific folder.
๐ง The images must have equal width and height.
๐ก sh
: script entry in terminal
#!/bin/bash
# ์์ ๋๋ ํ ๋ฆฌ ์์ฑ
mkdir temp_images
# ํ์ฌ ํด๋ ๋ด์ ๋ชจ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ํด ๋ฐ๋ณต
for original in *.*; do
# ํ์ผ ํ์ฅ์ ๋ฐ ์ด๋ฆ ์ถ์ถ
filename=$(basename "$original")
extension="${filename##*.}"
filename="${filename%.*}"
# ์๋ณธ ์ด๋ฏธ์ง๋ฅผ temp_images ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌ
cp "$original" "temp_images/0.png"
# ์ด๋ฏธ์ง๋ฅผ ๋ณต์ ํ๊ณ 90๋์ฉ ํ์
for i in {1..8}; do
angle=$((90 * i))
convert "temp_images/0.png" -rotate $angle "temp_images/$i.png"
done
# ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณํฉํ์ฌ ์ต์ข
ํ์ผ ์ ์ฅ
montage temp_images/*.png -tile 3x3 -geometry +0+0 "${filename}_merged.${extension}"
# ์์ ์ด๋ฏธ์ง ํ์ผ ์ญ์
rm temp_images/*.png
done
# ์์ ๋๋ ํ ๋ฆฌ ์ญ์
rmdir temp_images
#!/bin/bash
# ์์ ๋๋ ํ ๋ฆฌ ์์ฑ
mkdir temp_images
# ํ์ฌ ํด๋ ๋ด์ ๋ชจ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ํด ๋ฐ๋ณต
for original in *.*; do
# ํ์ผ ํ์ฅ์ ๋ฐ ์ด๋ฆ ์ถ์ถ
filename=$(basename "$original")
extension="${filename##*.}"
filename="${filename%.*}"
# ์๋ณธ ์ด๋ฏธ์ง๋ฅผ temp_images ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌ
cp "$original" "temp_images/0.png"
# ์ด๋ฏธ์ง๋ฅผ ๋ณต์ ํ๊ณ 90๋์ฉ ํ์
for i in {1..24}; do
angle=$((90 * i))
convert "temp_images/0.png" -rotate $angle "temp_images/$i.png"
done
# ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณํฉํ์ฌ ์ต์ข
ํ์ผ ์ ์ฅ
montage temp_images/*.png -tile 5x5 -geometry +0+0 "${filename}_merged.${extension}"
# ์์ ์ด๋ฏธ์ง ํ์ผ ์ญ์
rm temp_images/*.png
done
# ์์ ๋๋ ํ ๋ฆฌ ์ญ์
rmdir temp_images
#!/bin/bash
# ์์ ๋๋ ํ ๋ฆฌ ์์ฑ
mkdir temp_images
# ํ์ฌ ํด๋ ๋ด์ ๋ชจ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ํด ๋ฐ๋ณต
for original in *.*; do
# ํ์ผ ํ์ฅ์ ๋ฐ ์ด๋ฆ ์ถ์ถ
filename=$(basename "$original")
extension="${filename##*.}"
filename="${filename%.*}"
# ์๋ณธ ์ด๋ฏธ์ง๋ฅผ temp_images ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌ
cp "$original" "temp_images/0.png"
# ์ด๋ฏธ์ง๋ฅผ ๋ณต์ ํ๊ณ 90๋์ฉ ํ์
for i in {1..48}; do
angle=$((90 * i))
convert "temp_images/0.png" -rotate $angle "temp_images/$i.png"
done
# ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณํฉํ์ฌ ์ต์ข
ํ์ผ ์ ์ฅ
montage temp_images/*.png -tile 7x7 -geometry +0+0 "${filename}_merged.${extension}"
# ์์ ์ด๋ฏธ์ง ํ์ผ ์ญ์
rm temp_images/*.png
done
# ์์ ๋๋ ํ ๋ฆฌ ์ญ์
rmdir temp_images
#!/bin/bash
# ์์ ๋๋ ํ ๋ฆฌ ์์ฑ
mkdir temp_images
# ํ์ฌ ํด๋ ๋ด์ ๋ชจ๋ ์ด๋ฏธ์ง ํ์ผ์ ๋ํด ๋ฐ๋ณต
for original in *.*; do
# ํ์ผ ํ์ฅ์ ๋ฐ ์ด๋ฆ ์ถ์ถ
filename=$(basename "$original")
extension="${filename##*.}"
filename="${filename%.*}"
# ์๋ณธ ์ด๋ฏธ์ง๋ฅผ temp_images ๋๋ ํ ๋ฆฌ์ ๋ณต์ฌ
cp "$original" "temp_images/0.png"
# ์ด๋ฏธ์ง๋ฅผ ๋ณต์ ํ๊ณ 90๋์ฉ ํ์
for i in {1..80}; do
angle=$((90 * i))
convert "temp_images/0.png" -rotate $angle "temp_images/$i.png"
done
# ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๋ณํฉํ์ฌ ์ต์ข
ํ์ผ ์ ์ฅ
montage temp_images/*.png -tile 9x9 -geometry +0+0 "${filename}_merged.${extension}"
# ์์ ์ด๋ฏธ์ง ํ์ผ ์ญ์
rm temp_images/*.png
done
# ์์ ๋๋ ํ ๋ฆฌ ์ญ์
rmdir temp_images