■はじめに
UWSCで画像判定用の画像を用意するために作成したスクリプトを紹介します。
画像判定用の画像は、PrintScreenキーで保存したものではうまくいきません。
画像判定の画像を用意する手軽な方法は、以下2つです。
- フリーソフト『WinShot』を利用する
- UWSCのSAVEIMG関数を使って準備
この記事では、2のSAVEIMG関数を使って画像を準備する方法を使用します。
個人用のメモですが、どなたかの参考になれば幸いです。
◆この記事でわかること
- UWSCを使って画面を保存する方法(SAVEIMG関数)
- UWSCを使って日付時刻を取得する方法(GETTIME関数)
- キー情報取得方法(GETKEYSTATE関数)
■サンプルコード
ご紹介するスクリプトは次のような機能を持っています。
◆機能
- 左クリックでデスクトップ全体のスクリーンショットを取得。
- ファイル名は「スクショ_年月日-時分-秒」で保存。
- ESCキーで終了する。
//--------------------------------------- // 機能: 左クリックでスクリーンショット保存。 // 用途: 画像診断用の画像取得、手順書の作成など //--------------------------------------- fukidasi("左クリック:スクショ<#CR>ESC:終了") newkey = FALSE oldkey = FALSE folder = ".\shot\" //保存フォルダ //保存フォルダがなければ作成 if folder <> "" and fopen(folder, F_EXISTS) = FALSE then res = Doscmd("mkdir " + folder) endif //メインループ while True sleep(0.2) oldkey = newkey newkey = getkeystate(VK_LBUTTON) if newkey = True and oldkey = False then //左クリックでスクショを保存 gettime() img_name = folder + "スクショ_" + G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + "-" + G_TIME_HH2 + G_TIME_NN2 + "-" + G_TIME_SS2 //画像保存 Saveimg( img_name ) //BMP //Saveimg( img_name, , , , , , , 80, 0 ) //JPEG endif if getkeystate(VK_ESC) then // ESCで終了で終了 break endif wend
画像をトリミングして保存
ご紹介するスクリプトは次のような機能を持っています。
◆機能
- スクショを指定した2点間の部分のみ保存。
- Shift+左クリック1回目でスクショの始点設定。
- Shift+左クリック2回目でスクショの終点設定+保存。
- ファイル名は「スクショ_年月日-時分-秒」で保存。
- ESCキーで終了する。
//--------------------------------------- // 機能: Shift押しながらクリック2回でスクショ // (クリック1回目が始点、2回目が終点) // 用途: 画像診断用の画像取得、手順書の作成など //--------------------------------------- fukidasi("Shift+左クリック2回:スクショ<#CR>ESC:終了") newkey = FALSE oldkey = FALSE shiftkey = False startx = 0 starty = 0 endx = 0 endy = 0 set_status = 0 folder = ".\shot\" //格納先確認。なければ作成 if folder <> "" and fopen(folder, F_EXISTS) = FALSE then res = Doscmd("mkdir " + folder) endif //メインルーチン while True sleep(0.2) //mes = "mouse: " + G_MOUSE_X + "," + G_MOUSE_Y oldkey = newkey newkey = getkeystate(VK_LBUTTON) shiftkey = getkeystate(VK_SHIFT) if newkey = True and oldkey = False and shiftkey = True then // 左クリックでスクショを保存 if set_status = 0 then startx = G_MOUSE_X starty = G_MOUSE_Y //mes = "set: " + G_MOUSE_X + "," + G_MOUSE_Y fukidasi("set_start: " + startx + "," + starty) set_status = 1 elseif set_status = 1 endx = G_MOUSE_X endy = G_MOUSE_Y swap(startx, endx) swap(starty, endy) fukidasi("set_start: " + startx + "," + starty + "<#CR>" + "set_end:" + endx + "," + endy ) set_status = 2 endif if set_status = 2 then gettime() img_name = folder + "スクショ-レンジ_" + G_TIME_YY4 + G_TIME_MM2 + G_TIME_DD2 + "-" + G_TIME_HH2 + G_TIME_NN2 + "-" + G_TIME_SS2 // 画像保存 Saveimg( img_name, 0, startx, starty, endx - startx, endy - starty ) // BMP //Saveimg( img_name, , , , , , , 80, 0 ) // JPEG set_status = 0 startx = 0; starty = 0 startx = 0; startx = 0 endif //fukidasi(mes) endif if getkeystate(VK_ESC) then // ESCで終了で終了 break endif wend function swap(var a, var b) res = 0 if a < b then //入れ替えない res = 0 elseif a > b then //入れ替え t = a a = b b = t res = 1 endif result = res fendShift+右クリック設定ですが、Shiftだと都合が悪い場合もあります。
ShiftをCtrlやAltに変更したい場合、VK_SHIFTの部分を、VK_CTRLやVK_ALTに変更してください。
0 件のコメント:
コメントを投稿