The first entry serves to set the directory to the folder that contains the images on which you wish to "play".  This is also the folder to which movies will be exported.  The command specifications will change from machine to machine, user to user, so find the correct path for your situation.  Also, the code reflects the way that the Unix-based operating system on my Mac deals with the pathway, using "/" to differentiate between folder names.  On PC's, you may need to use ":" instead.  You will only need to enter this set of commands once per session.

SetDirectory["C:\\Documents and Settings\\KAMS Student\\Desktop\\Banff Talk"]

The following set of commands generates a table of images of the same basic size as the original, with the inverse of a matrix transformation applied to the center of each pixel n times, generating a list of graphics that can be exported as an .avi movie.  The user can determine the original image that is input, the matrix that is used, and the number of times n that the matrix is applied.

(* The following command inputs the image file.  You supply the file name. *)
temp=Import["DSC_6624_2.jpg"];
colors=((temp[[1]])/255.);  (* Scales the RGB values for Mathematica. *)
{rows,cols,check}=Dimensions[colors];  (*Sets the dimensions. *)
countermax=Max[rows,cols];
rmax=(rows/2.);cmax=(cols/2.);max=Max[rmax,cmax];
centers=Table[{-max+j-.5,-max+i-.5},{i,countermax},{j,countermax}];
(* The following command inputs the matrix that will be used to generate the graphics. The inverse of the matrix is drawn into the function "f". *)
matrix[x_,y_]:={{Cos[(((Sqrt[(x^2)+(y^2)])/25))°],Sin[((((Sqrt[(x^2)+(y^2)])/25)))°]},{-Sin[((((Sqrt[(x^2)+(y^2)])/25)))°] ,Cos[((((Sqrt[(x^2)+(y^2)])/25)))°]}};
imat[x_,y_]=Inverse[matrix[x,y]];
f[{x_,y_}]:=imat[x,y].{x,y};
(* The following two commands put the original picture into the list of frames, as the initial frame. *)
newcolors=Table[If[1≤Floor[centers[[i,j,1]]+cmax+.50000001]≤cols && 1≤Floor[centers[[i,j,2]]+rmax+.50000001]≤rows,colors[[Floor[centers[[i,j,2]]+rmax+.50000001],Floor[centers[[i,j,1]]+cmax+.50000001]]],{1.,1.,1.}],{i,countermax},{j,countermax}];
frames={Image[newcolors]};
Print["0"];
(* The following do-loop generates the frames for the animation.  You specify how many frames past the original that are generated by changing the value after "n," in the last line.  The command "centers" maps "f" onto all of the pixel centers. *)
Do[(
centers=Map[f,centers,{2}];
newcolors=Table[If[1≤Floor[centers[[i,j,1]]+cmax+.50000001]≤cols && 1≤Floor[centers[[i,j,2]]+rmax+.50000001]≤rows,colors[[Floor[centers[[i,j,2]]+rmax+.50000001],Floor[centers[[i,j,1]]+cmax+.50000001]]],{1.,1.,1.}],{i,countermax},{j,countermax}];
AppendTo[frames,Image[newcolors]];
Print[n];
),{n,100}]

Export["animation.avi",frames]