Strona 1 z 1

Bash i skrypt do masowej edycji zdjęć

: 17 lutego 2015, 20:46
autor: szlejk
Witam
Znalazłem w necie skrypt do masowej edycji zdjęć i chciałem go przerobić do swoich potrzeb. Problem polega na tym że nie wiem jakie powinny być prawidłowe instrukcje do drugiej części skryptu

Kod: Zaznacz cały

#!/bin/bashfind . -name "*.JPG" -exec convert {} -format jpg {}.jpg \;
rename 's/JPG.jpg$/jpg/' *.JPG.jpg
#rm *jpg
for i in *jpg
do


mogrify -normalize -geometry 800  *jpg \


convert $i \( +clone -blur 0x3 +level 20%,100% \) \
          \( +clone -gamma 0 -shave 10x10 \
             -bordercolor white -border 10x10 \) \
          -composite \
          \( +clone -gamma 0 -shave 10x10 \
             -bordercolor white -border 1x1 \
             -bordercolor black -border 9x9 \) \
          -compose screen -composite $i
done
# position, Center, SouthEast, SothWest, NorthEast, NorthWest
pos="SouthEast"
files=`ls *jpg`
mkdir Gotowe


for i in $files
do
  echo "Gotowy"$i
 composite -gravity $pos logo.png $i Gotowe/ $i
done
Proszę o sprawdzenie i wskazówki.
Pozdrawiam i dziękuje
Mirek

: 17 lutego 2015, 21:56
autor: kodama
Tylko jeszcze jest pytanie jaki konkretnie efekt chcesz osiągnąć? Co ten skrypt ma robić? Jakie efekty, przekształcenia?

: 17 lutego 2015, 22:00
autor: klavierkrk

Kod: Zaznacz cały

#!/bin/bashfind . -name "*.JPG" -exec convert {} -format jpg {}.jpg \;

1 linijka zła... ;) bashfind - nie ma czegoś takiego.
Powinno być raczej:

Kod: Zaznacz cały

#!/bin/bash
find . -name "*.JPG" -exec convert {} -format jpg {}.jpg \;
natomiast ...

Kod: Zaznacz cały

convert
... jest komendą z imagemagick, który ma świetną dokumentację i rzeczywiście przyda się w tym wypadku do przegrywania zdjęć.
http://www.imagemagick.org/script/convert.php

: 18 lutego 2015, 22:42
autor: szlejk
Witam i dziękuje za zainteresowanie się tematem.

Kod: Zaznacz cały

[color=#3E3E3E]#!/bin/bashfind . -name "*.JPG" -exec convert {} -format jpg {}.jpg \;[/color]
przy wklejaniu linijki się połaczyły :p gapa ze mnie. Na obecną chwilę skrypt działa proszę o sprawdzenie pod względem błędów :D

Skrypt ma za zadanie

  1. znaleźć wszystkie zdjęcia z rozszerzeniem .JPG i zmienić na .jpg
  2. zmienić rozmiar zdjęć na dogodny do publikacji w internecie
  3. dodać przezroczystą ramkę dookoła zdjęcia
  4. wstawić znak wodny i przenieść zdjęcia z do wskazanego folderu
  5. usuwa zdjęcia z rozszerzeniem .jpg (oryginały .JPG zostają nie naruszone)
[LEFT]
Zdjęcie przed edycją
DSCF9216 (1).jpg
I po edycji
DSCF9216 (1).jpg
skrypt:

Kod: Zaznacz cały

#!/bin/bash
find . -name "*.JPG" -exec convert {} -format jpg {}.jpg \;
rename 's/JPG.jpg$/jpg/' *.JPG.jpg
for i in *jpg
do
mogrify -normalize -geometry 800  *jpg \


convert $i \( +clone -blur 0x3 +level 20%,100% \) \
          \( +clone -gamma 0 -shave 10x10 \
             -bordercolor white -border 10x10 \) \
          -composite \
          \( +clone -gamma 0 -shave 10x10 \
             -bordercolor white -border 1x1 \
             -bordercolor black -border 9x9 \) \
          -compose screen -composite $i
done
# position, Center, SouthEast, SothWest, NorthEast, NorthWest
pos="SouthEast"
files=`ls *jpg`
mkdir Gotowe


for i in $files
do
  echo "Pliki gotowe w folderze Gotowe :"$i
 composite -gravity $pos logo.png $i Gotowe/$i


done
rm *jpg

Pozdrawiam
Mirek[/LEFT]