User:Amy Suo Wu/dummies, the sequel
10th Nov. Animations
- spinning maria
- spinning tiger
- spinning tiger2
- spinning tiger3 looping
- hurricane amy looping
anim.py
from magickwand import *
from ctypes import *
import random
import sys
duration = 2
fps = 15
transitions = 2
width = 640
height = 480
frame_num = 1
prefix = 'distort.'
extension = '.jpg'
inputfile = 'maria.jpg'
def loop():
distortion_A = generate_distortion()
distortion_B = generate_distortion()
generate_transition(distortion_A, distortion_B)
generate_transition(distortion_B, distortion_A)
def generate_distortion():
x_offset = random.randint(0,width)
y_offset = random.randint(0,height)
angle = random.randint(5,360)
rotation = 0
topradius = random.randint(1,height)
distortion_params = [x_offset, y_offset, angle,rotation,topradius]
return distortion_params
def generate_animation():
for i in range(transitions):
if i == 0:
distortion_A = generate_distortion()
else:
distortion_A = distortion_B
distortion_B = generate_distortion()
generate_transition(distortion_A, distortion_B)
def generate_transition(distortion_A, distortion_B):
fpt = (duration * fps) / transitions
x_offset_step = (distortion_B[0] - distortion_A[0]) / fpt
y_offset_step = (distortion_B[1] - distortion_A[1]) / fpt
angle_step = (distortion_B[2] - distortion_A[2]) / fpt
rotation_step = (distortion_B[3] - distortion_A[3]) / fpt
topradius_step = (distortion_B[4] - distortion_A[4]) / fpt
x_offset = distortion_A[0]
y_offset = distortion_A[1]
angle = distortion_A[2]
rotation = distortion_A[3]
topradius = distortion_A[4]
for i in range(fpt):
if i > 0 :
x_offset += x_offset_step
y_offset += y_offset_step
angle += angle_step
rotation += rotation_step
topradius += topradius_step
generate_image(x_offset, y_offset, angle, rotation, topradius)
global frame_num
frame_num += 1
def generate_image(x_offset, y_offset, angle, rotation, topradius):
arrayType = c_double * 3
args = arrayType()
args[0] = c_double(angle)
args[1] = c_double(rotation)
args[2] = c_double(topradius)
viewport = '%ix%i-%i-%i' % (width, height, x_offset, y_offset)
wand = NewMagickWand()
MagickReadImage(wand,inputfile)
MagickSetImageArtifact(wand,'distort:viewport',viewport)
MagickSetImageVirtualPixelMethod(wand,TileVirtualPixelMethod)
MagickDistortImage(wand,ArcDistortion, 3, args, MagickTrue)
filename = '%s%05d%s' % (prefix,frame_num,extension)
MagickWriteImage(wand,filename)
def usage():
print 'please provide a path to the image : python anim.py myimage.jpg'
def main():
try:
global inputfile
inputfile = sys.argv[1]
loop()
#generate_animation()
except:
usage()
main()
permissions on the server
-rwxr-xr-x
user group other (ugo)
to add permission +
to take away permission -
example: chmod go+w means that you give and group and other 'write' permissions.
28th Oct. Tile distort with imagemagick and cronjobs
today's weather forecast is........
21st Oct. I Command line!
ps ax = get a list of all processes running on the computer.
grep = search for a string
scp = secure copy
ssh = secure shell
ls = show me in folder
ls -al = all files (also hidden)
cp = copy (e.g cp ../../newmovie.mp4 . means to copy file two folders before here
../../ is relative
* is wild card.
mv = move folder/file, or rename
mkdir = make directory
cd = change directory
rm = remove file
rm -rf = remove folder
rm -r = remove recursively. delete all contents incl folder
grep = find a string. (crawls for words in file)
grep "blah" "*"
find
man = manual
watch = timer. can do it to any file
-surveilling the file. command: e.g. watch cat poo.txt 3(e.g. txt)
-This runs the command every 3 seconds.
./ = execute
sed = search and replace
cat = concatinate and print files (shows content of file and outputs in binary form)
echo = is echo
less =
| = pipeline
> = output
>> = adding files.
ctrl + c
example:
ls -al ~
mv *.jpg ~/pics/
rm -rf pics
grep “bla” *
find -name “*bla*”
mkdir test
echo bla > bla.txt
echo blabla >> bla.txt
cat /var/log/auth.log |less