Make Movie from Page Layout
hrodstein
#pragma rtGlobals=3 // Use modern global access method.
Menu "Macros"
"Make Movie From Top Layout", MakeMovieFromTopLayout(5)
End
Function ComputeNextFrame(frameNumber) // You will need to customize this function
Variable frameNumber
Wave jack, joe
jack = sin(x/(1+frameNumber))
joe = cos(x/(1+frameNumber))
End
Function MakeMovieFromTopLayout(numFrames) // Creates movie named "LayoutMovie.mov" in Igor Pro Folder.
Variable numFrames
String layoutName = WinName(0, 4) // Name of top layout
if (strlen(layoutName) == 0)
Abort "There are no layouts"
endif
String tempDirFullPath = SpecialDirPath("Temporary", 0, 0, 0)
NewPath/O/Q TempLayoutMoviePath, tempDirFullPath
Variable frameNumber
SavePICT/O/P=TempLayoutMoviePath/E=-5 as "TempLayoutPICT"
LoadPICT/Q/O/P=TempLayoutMoviePath "TempLayoutPICT", TempLayoutPICT // Sets S_info
Variable pictWidth = NumberByKey("PHYSWIDTH", S_info) // Width of picture in points
Variable pictHeight = NumberByKey("PHYSHEIGHT", S_info) // Height of picture in points
Display/W=(5,42,5+pictWidth,42+pictHeight); DoWindow/C TempMovieGraph
SetDrawEnv xcoord= abs,ycoord= abs
DrawPICT 0,0,1,1,TempLayoutPICT
NewMovie/P=TempLayoutMoviePath/L as "LayoutMovie.mov"
for(frameNumber=0; frameNumber<numFrames; frameNumber+=1)
ComputeNextFrame(frameNumber)
DoWindow/F $layoutName // Activate the layout
DoUpdate // Make sure it is up-to-date.
SavePICT/O/P=TempLayoutMoviePath/E=-5 as "TempLayoutPICT"
LoadPICT/Q/O/P=TempLayoutMoviePath "TempLayoutPICT", TempLayoutPICT
DoWindow/F TempMovieGraph // Activate the graph
DoUpdate // Make sure it is up-to-date.
AddMovieFrame
endfor
CloseMovie
DoWindow/K TempMovieGraph
PlayMovie/P=TempLayoutMoviePath as "LayoutMovie.mov"
KillPath/Z TempLayoutMoviePath
EndMacro
Menu "Macros"
"Make Movie From Top Layout", MakeMovieFromTopLayout(5)
End
Function ComputeNextFrame(frameNumber) // You will need to customize this function
Variable frameNumber
Wave jack, joe
jack = sin(x/(1+frameNumber))
joe = cos(x/(1+frameNumber))
End
Function MakeMovieFromTopLayout(numFrames) // Creates movie named "LayoutMovie.mov" in Igor Pro Folder.
Variable numFrames
String layoutName = WinName(0, 4) // Name of top layout
if (strlen(layoutName) == 0)
Abort "There are no layouts"
endif
String tempDirFullPath = SpecialDirPath("Temporary", 0, 0, 0)
NewPath/O/Q TempLayoutMoviePath, tempDirFullPath
Variable frameNumber
SavePICT/O/P=TempLayoutMoviePath/E=-5 as "TempLayoutPICT"
LoadPICT/Q/O/P=TempLayoutMoviePath "TempLayoutPICT", TempLayoutPICT // Sets S_info
Variable pictWidth = NumberByKey("PHYSWIDTH", S_info) // Width of picture in points
Variable pictHeight = NumberByKey("PHYSHEIGHT", S_info) // Height of picture in points
Display/W=(5,42,5+pictWidth,42+pictHeight); DoWindow/C TempMovieGraph
SetDrawEnv xcoord= abs,ycoord= abs
DrawPICT 0,0,1,1,TempLayoutPICT
NewMovie/P=TempLayoutMoviePath/L as "LayoutMovie.mov"
for(frameNumber=0; frameNumber<numFrames; frameNumber+=1)
ComputeNextFrame(frameNumber)
DoWindow/F $layoutName // Activate the layout
DoUpdate // Make sure it is up-to-date.
SavePICT/O/P=TempLayoutMoviePath/E=-5 as "TempLayoutPICT"
LoadPICT/Q/O/P=TempLayoutMoviePath "TempLayoutPICT", TempLayoutPICT
DoWindow/F TempMovieGraph // Activate the graph
DoUpdate // Make sure it is up-to-date.
AddMovieFrame
endfor
CloseMovie
DoWindow/K TempMovieGraph
PlayMovie/P=TempLayoutMoviePath as "LayoutMovie.mov"
KillPath/Z TempLayoutMoviePath
EndMacro
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More