[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(DTPtechNote:1553) [AS_Photoshop CS2]resize_image
もともとPhotoshop 7用のものだけど、CS2でもすんなり動いた。
(*
ドラッグ&ドロップされた画像をリサイズ(リラスタライズ)する。
このとき、縦・横どちらかの長辺のピクセル数を指定する。かならず画像のバックアップをしてから実行させてください。
--
(c) 2002-2007 市川せうぞー www.seuzo.jp
2007.06.16 Adobe Photoshop CS2用
*)
property my_pix : 1000 --ピクセル数の初期値
on run --ダブルクリックで起動したときに初期値を変えられるように
try
display dialog "最大ピクセル数を入力してください" default answer my_pix
set my_pix to (text returned of result) as number
on error
display dialog "入力に不正があります。もう一度設定してください"
end try
end run
on open dolopitem
tell application "Finder"
activate
display dialog "このスクリプトを実行すると、画像に対して処理をして保存をします。やり直しはできません。
かならず画像のバックアップをしてから実行させてください。"
repeat with afile in dolopitem
if (creator type of afile) = "8BIM" then --Photoshopドキュメントだけを対象にしています。でないと、PDFやらイラレEPSも容赦なくOpenしますので(笑)
my resize_image(afile)
end if
end repeat
end tell
end open
to resize_image(afile)
tell application "Adobe Photoshop CS2"
try --画像ファイルでないものが、紛れ込む可能性
open afile showing dialogs never --警告ダイアログなどを無視して開く
on error
return
end try
tell current document
set my_h to (height as pixels) as number
set my_w to (width as pixels) as number
if my_h > my_pix or my_w > my_pix then
set my_scale to my_pix / my_h
if my_w > my_h then
set my_scale to my_pix / my_w
end if
resize image width (my_w * my_scale) as pixels ¬
height (my_h * my_scale) as pixels
close saving yes --保存して閉じる
else --
close saving no --保存しないで閉じる
end if
end tell
end tell
end resize_image