|
(*
|
|
简介:Torn!.app — 给图片添加撕纸效果
|
|
使用方法:将(多张)图片拖动到Torn!图标即可
|
|
注意事项:依赖于ImageMagick命令行(功能强大的图片处理库),推荐使用brew安装。
|
|
当然目前Torn!功能比较简单,后续视时间和精力增加功能。
|
|
|
|
by ashfinal 2015.02.16
|
|
*)
|
|
|
|
property exec_path : "/usr/local/bin/" -- ImageMagick 路径
|
|
property resize_span : 640 -- 高于该值的图片会被resize
|
|
property all_corner : false -- 左上边角是否也添加撕纸效果?
|
|
property intensity : 80 -- 撕边强度,单位为像素(px)
|
|
property has_shadow : true -- 是否加上阴影?
|
|
|
|
on open filelist
|
|
tell application "Finder"
|
|
set file_pool to {}
|
|
repeat with i in filelist
|
|
set file_type to name extension of i as string
|
|
set lower_type to do shell script "echo " & quoted form of (file_type) & " | tr A-Z a-z"
|
|
if lower_type is in {"tiff", "png", "jpg", "jpeg"} then
|
|
copy i to the end of file_pool
|
|
end if
|
|
end repeat
|
|
if (count of file_pool) > 0 then
|
|
do shell script "[[ -d ~/Desktop/IM-Out ]] || mkdir ~/Desktop/IM-Out"
|
|
if all_corner is false then
|
|
set extend_width to intensity
|
|
else
|
|
set extend_width to 0
|
|
end if
|
|
repeat with j in file_pool
|
|
set file_name to name of j
|
|
set file_ext to name extension of j
|
|
set name_len to (length of file_name) - (length of file_ext) - 1
|
|
set pure_name to text 1 through name_len of file_name
|
|
set satisfy_name to findandreplace(" ", "\\ ", pure_name) of me
|
|
set file_path to POSIX path of j
|
|
set satisfy_path to findandreplace(" ", "\\ ", file_path) of me
|
|
try
|
|
--set width_x to do shell script exec_path & "identify -format '%w' " & satisfy_path
|
|
--set height_y to do shell script exec_path & "identify -format '%h' " & satisfy_path
|
|
--set pic_res to do shell script exec_path & "identify -format '%wx%h' " & satisfy_path
|
|
set resize_opt to " -resize " & "x" & resize_span & "\\>"
|
|
do shell script exec_path & "convert " & satisfy_path & resize_opt & " -gravity northwest -splice " & extend_width & "x" & extend_width & "+0+0 \\( +clone -alpha extract -virtual-pixel black -spread " & intensity & " -blur 0x3 -threshold 50% -spread 1 -blur 0x.7 \\) -alpha off -compose copy_opacity -composite -gravity northwest -chop " & extend_width & "x" & extend_width & " ~/Desktop/IM-Out/" & satisfy_name & "-tp.png"
|
|
if has_shadow is true then
|
|
do shell script exec_path & "convert ~/Desktop/IM-Out/" & satisfy_name & "-tp.png" & " \\( +clone -background black -shadow 60x4+4+4 \\) +swap -background white -layers merge +repage" & " ~/Desktop/IM-Out/" & satisfy_name & "-tp.png"
|
|
end if
|
|
on error eText number eNum
|
|
display dialog "错误代码:" & eNum & " 详情:" & eText & return & "请确认ImageMagick已安装并正确配置,如仍有问题请联系:ashfinal@sina.cn" & " 微博:敢和蜗牛赛跑" buttons {"OK"} default button 1 with title "出现错误 (; ̄ェ ̄)" with icon note
|
|
exit repeat
|
|
end try
|
|
end repeat
|
|
do shell script "open ~/Desktop/IM-Out"
|
|
end if
|
|
end tell
|
|
end open
|
|
|
|
on run
|
|
display dialog "简介:Torn!.app — 给图片添加撕纸效果
|
|
使用方法:将(多张)图片拖动到Torn!图标即可
|
|
注意事项:依赖于ImageMagick命令行,推荐使用brew安装。" buttons {"OK"} default button 1 with title "关于" with icon note
|
|
end run
|
|
|
|
on findandreplace(toFind, replaceWith, theText)
|
|
set tid to AppleScript's text item delimiters
|
|
set AppleScript's text item delimiters to toFind
|
|
set textItems to theText's text items
|
|
set AppleScript's text item delimiters to replaceWith
|
|
set editedText to textItems as text
|
|
set AppleScript's text item delimiters to tid
|
|
return editedText
|
|
end findandreplace
|