Nytt bashscript

09Mar08

Jag satt och funderade på hur jag kunde jobba vidare på mitt bashscript för att skapa mpgfilmer, men tycktet att det var bättre att skapa ett nytt script för att lösa den nya uppgiften. Det nya scriptet är skapat för att visa upp en panorama bild som panorerar förbi. Hemligheten är att använda imagemagicks extract funktion. Nu börjar jag få så mycket ideer på vad jag skulle vilja göra, att det börjar bli svårt att hålla sig till bashscripting. Nackdelen är att det skulle fort bli stora mängde C/C++ kod för att göra samma sak med C eller C++. En annan fördel med script är att man kan vara slarvig och hårdkoda delar av koden.

#!/bin/bash
#Desc: Skapar en mpgfilm av en panoramabild (vad mer kan jag säga?) 
#Scriptet kräver ffmpeg och ImageMagick.
#Version: 1.0
#Coder: Fredrik Persson
#E-mail: perrascout@linux.se
#Download/webpage: 
#Licens: BSD

#anger hur många pixel bilden ska röra sig i xled per frame
declare -i SPEED=1
#man måste veta källbildens bredd INNAN
declare -i SRC_W=1097
#definierar slut bildens bredd (och höjd)
declare -i DEST_W=320
declare -i DEST_H=240
declare -i OFFSET=0
declare -i ENDPOINT=$SRC_W-$DEST_W
declare -i COUNTER=0

SIZE=320x240

mkdir ./tmp

echo $ENDPOINT

convert -resize $SIZE ./back.png ./tmp/back.png
convert -resize $SIZE ./frame.png ./tmp/frame.png

while [ $OFFSET -lt $ENDPOINT ]
do
  echo $OFFSET
  OFFSET=$OFFSET+$SPEED
  convert -size $SIZE -extract $SIZE+$OFFSET ./mardal.jpg ./tmp/f-$COUNTER.jpg;
  composite -gravity center ./tmp/f-$COUNTER.jpg ./tmp/back.png ./tmp/f-$COUNTER.jpg;
  composite -gravity center ./tmp/frame.png ./tmp/f-$COUNTER.jpg ./tmp/f-$COUNTER.jpg;
  COUNTER=$COUNTER+1
done

ffmpeg -s $SIZE -i ./tmp/f-%d.jpg final.mpg

rm ./tmp/*.*
rmdir ./tmp

//Fredrik



No Responses Yet to “Nytt bashscript”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: