Förvrängning av perspektiv

12Jul08

Det ryckte till lite i “kåd-nerven” i går. Jag hade ingen större lust att koda i C/C++, lua eller php, då återstår bara bash. Av någon anledning har jag fastnat för att skriva bashscript som använder sig av ImageMagick och ffmpeg (finns det hjälp att få?). Jag gav mig in i scriptskrivade med visionen om att göra en “film” med en inflygande text i bästa “Star Wars” stuket.

Det största problemet som jag stötte på var perspektivförvrängningen med hjälp av ImageMagiks convert. Lite efterforskning ledde mig till följande förvrängnings tillägg.

-distort Perspective 'S1X,S1Y,D1X,D1Y  S2X,S2Y,D2X,D2Y  S3X,S3Y,D3X,D3Y  S4X,S4Y,D4X,D4Y'

S1X = Källpunkt 1 (X-led)
S1Y = Källpunkt 1 (Y-led)
D1X = Målpunkt 1 (X-led)
D1Y = Målpunkt 1 (Y-led)
osv…

Där S1 är bildens övrevänstra hörn och S2 är nedre vänstra hörn (se bild under).

Scriptet är i sig inte speciellt komplicerat, det enda man behöver ta hänsyn till är min fula ovana att hårdkoda en massa variabler, men i ett script är det inget större problem.
Kod

#!/bin/bash
#Desc: Skapar en mpgfilm med en scrollande "starwars" text (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

SIZE=640x480

declare -i TEXT_HEIGHT=2000
declare -i COUNTER=0
declare -i OFFSET=0
declare -i ENDPOINT=TEXT_HEIGHT-480

mkdir ./tmp

echo $OFFSET
echo $ENDPOINT

while [ $OFFSET -lt $ENDPOINT ]
do
  echo $OFFSET
  convert -size $SIZE -extract $SIZE+0+$OFFSET ./text.png ./tmp/f-$COUNTER.png;
  convert ./tmp/f-$COUNTER.png -matte -virtual-pixel transparent -distort Perspective '0,0,213,0  0,480,0,480  480,480,480,480  640,0,427,0' ./tmp/f-$COUNTER.png
  composite -gravity center ./tmp/f-$COUNTER.png ./space.png ./tmp/f-$COUNTER.jpg
  rm ./tmp/f-$COUNTER.png
  OFFSET=$OFFSET+2
  COUNTER=$COUNTER+1
done

ffmpeg -s $SIZE -b 512k -i ./tmp/f-%d.jpg final.avi

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

Och resultatet:

Jag hoppas detta kan hjälpa någon att skapa något annat roligt…

//Fredrik



No Responses Yet to “Förvrängning av perspektiv”

  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: