我正在尝试使用Applescript或终端(或通过使用do shell script命令的终端来使用Applescript)自动从所选的.gif文件中提取帧。我知道如何使用Preview.app使用点击和拖动方法,但有没有自动执行此操作的方法?
谢谢! Eric
谢谢! Eric
# convert 'animated.gif[0-10]' frames%03d.png
针对有兴趣使用原生预览应用程序导出单个帧的人...
http://www.macobserver.com/tmo/article/preview-extracting-frames-from-animated-gifs
set gifFiles to choose file of type "com.compuserve.gif" with prompt "Select GIF's files" with multiple selections allowed
set dest to quoted form of POSIX path of (choose folder with prompt "Select the folder to save gif's frames")
set pScript to quoted form of "from AppKit import NSApplication, NSImage, NSImageCurrentFrame, NSGIFFileType; import sys, os
tName=os.path.basename(sys.argv[1])
dir=sys.argv[2]
app=NSApplication.sharedApplication()
img=NSImage.alloc().initWithContentsOfFile_(sys.argv[1])
if img:
gifRep=img.representations()[0]
frames=gifRep.valueForProperty_('NSImageFrameCount')
if frames:
for i in range(frames.intValue()):
gifRep.setProperty_withValue_(NSImageCurrentFrame, i)
gifRep.representationUsingType_properties_(NSGIFFileType, None).writeToFile_atomically_(dir + tName + ' ' + str(i + 1).zfill(2) + '.gif', True)
print (i + 1)"
repeat with f in gifFiles
set numberOfExtractedGIFs to (do shell script "/usr/bin/python -c " & pScript & " " & (quoted form of POSIX path of f) & " " & dest) as integer
end repeat
这个脚本显示两个对话框,一个用于选择GIF文件,另一个用于选择目标文件夹。
print (i + 1)
。 - jackjr300