|
前回 004 のデフォルトフォルダーを使って、スナップショットを撮るスタックです。
基本のスクリプトは、
export snapshot to file "RevSnap_1.jpg" as JPEG
で、JPEG のファイルがデフォルトフォルダーに作られます。JPEG の部分を「paint、または PNG など」に変えて、それぞれのイメージファイルを作る事もできます。もちろんファイル名の拡張子もそれぞれで変えてください。この 005.rev ではJPEG のみを扱っています。ひとつはほとんど上記のスクリプトだけの「単純なスナップ」と、スナップ自体にもう少しバリエーションを加えて、さらにフォルダー内のファイルの構成も見えるようにした、「少し複雑なスナップ」とを作ってみました。
単純なスナップ

下のスクリプトは「単純なスナップ」のスクリプトです。
set the JPEGQuality to 50
export snapshot to file "RevSnap_1.jpg" as JPEG
set the cursor to hand
if platForm() is "MacOS" then
set the fileType to "prewJPEG"
end if
JPEGQualityで、JPEG の画像の品質を 50 に設定しています。( 1 から 100 の設定ができます。特に設定しない場合、つまりデフォルトでは 100 です。) export snapshot to file filename... でスナップショトのイメージ範囲を設定するために、カーソルがクロスヘアーに変わります。その後時々カーソルが戻らないこともあるので、私は次の set the cursor to hand を入れておくことが多いです。その下は MacOS のためのアイコンが見えるように filetype をセットする行です。 OSX の場合、保存するフォルダーを開けたままにしておくと、普通の書類アイコンになってしまう事も時にはあります。
少し複雑なスナップ

トップにあるタブの右側を選択すると「少し複雑なスナップ」が現れ、デフォルトフォルダー内にあるすべての JPEG ファイルのリストが見えます。
global gFileList
on setImageList put the files into gFileList filter gFileList without ".*" filter gFileList with "*.jpg" put gFileList into fld "tImageList"
end setImageList
the file で、デフォルトフォルダーの全ファイルリストが取り出せるので、
filer を使って不可視ファイル(MacOSX では始めに . が付いている)を取り除き、 filter gFileList without ".*"
JPEG だけのファイル(.jpg が付いている)を取り出し、 filter gFileList with "*.jpg" フィールド「tImageList」にリストで入れています。gFileList をグローバルで宣言しておいて、この setImageList はまた後から使います。
次はラジオボタンで、スナップショットの範囲を選択するか、スクリーン全体のスナップショットにするか、またスクロールバーから数値を取得して、イメージクオリティを変化させるスクリプトと、スナップしたファイルを上書きしないで、自動でファイル名を割り振りするスクリプトです。
global gFileList local lSnapNum
on mouseUp
set the JPEGQuality to the thumbpos of sb 1
snapNum
if the hilite of btn "wholeArea" is true then
export snapshot from rect the screenRect to \ file "RevSnap_"&lSnapNum&".jpg" as JPEG
else export snapshot to file "RevSnap_"&lSnapNum&".jpg" as JPEG
end if
set the cursor to hand
if platForm() is "MacOS" then
set the fileType to "prewJPEG"
end if
setImageList
end mouseUp
on snapNum put gFileList into myList
filter myList with "RevSnap_*"
replace "RevSnap_" with "" myList
set the itemDel to "."
repeat with i=1 to the num of lines of myList put i into lSnapNum
if item 1 of line i of myList is not i then
exit snapNum
end if
end repeat put lSnapNum +1 into lSnapNum
end snapNum
まずスクロールバーの the thumbPositon から、JPEG クオリティをセットしています。 the thumbPosition of scrollbar 1 は、the thumbPos of sb 1 と縮小で書くこともきます。
次にグローバル宣言してあった gFileList を使って、フォルダー内にいくつの JPEG ファイルがあって、新しいファイル名を付けた場合どの番号を割り振るれば良いかを知る snapNum で、番号を lSnapNum にセットします。(Revolution では、itemDel はハンドラーを抜けると、デフォルトのカンマに自動でセットされますから、もう一度元にもどす必要はありません)
ラジオボタンがスクリーン全体を選んでいたら、export snapshot の rect を the screenRect とします。そうでない場合は「単純なスナップ」と同じクロスヘアで範囲を設定するスクリプトです。
最後に新しく作ったファイルをリストに加える、 setImageList をもう一度使います。
Revolution では、複数のラジオボタンをグループ化させると、自動的にハイライトの切り替えが行われるように設定されます。(複数のラジオボタンを選んだら、メニューの Object > Group Selected )
005 付録:リストのダブルクリックで実際のファイルを削除する
トップに見えるファイルリストをダブルクリックすると、clickText() でリストのファイル名を取得して、デフォルトフォルダー内にあるそのJPEG ファイルを削除します。
on mouseDoubleUp
put clickText() into tFile
answer warning "Are yu sure?" with "Cancel" or "OK" as sheet
if it is "OK" then
delete file the defaultFolder &"/" & tFile
setImageList
end if
end mouseDoubleUp
|