在Sikuli中访问MongoDB(2)-保存图像
使用Sikuli访问MongoDB(第二部分)- 保存图像
以下是 Sikuli 连接 MongoDB(第一部分)的续集。
ソフト等バージョン備考Windows 10 Pro
64ビットJava 8update 71
sikuli1.1.120151126.001204-18(Jython2.7.0)Java MongoDB Driver3.0.4
64ビットJava 8update 71
sikuli1.1.120151126.001204-18(Jython2.7.0)Java MongoDB Driver3.0.4
首先,使用mongofiles进行操作确认。
我进行了各种调查,但是对于注册的概念还不太清楚,所以我打算使用mongofiles.exe来尝试注册。
也许用GridFS可能不需要截图这么麻烦,但是考虑到将来的需要,我打算尝试使用GridFS。
我使用mongofiles.exe将本地准备的文件(C:\mongoDB\20160207-202331.png)注册到img数据库中的结果如下:
C:\mongoDB\bin>mongofiles /v /host:S2016TP4 /db:img put c:\mongoDB\20160207-202331.png
2016-02-07T20:51:23.409+0900 using write concern: w='1', j=false, fsync=false, wtimeout=0
2016-02-07T20:51:23.414+0900 connected to: S2016TP4
2016-02-07T20:51:23.414+0900 handling mongofiles 'put' command...
added file: c:\mongoDB\20160207-202331.png
当使用Robomongo查看img数据库时,会出现两个集合:fs.chunks和fs.files。


使用Sikuli进行注册。
在大概了解了注册的流程后,在大量的网络搜索中,我尝试用Sikuli编写了以下的源代码。
# -*- coding: UTF-8 -*-
import java.io.File
import datetime
# MopngoDB JDBCドライバ
load("C:\mongoDB\mongo-java-driver\mongo-java-driver-3.0.4.jar")
import com.mongodb.MongoClient;
import com.mongodb.gridfs;
# Client,DB,GridFSの接続
cli = com.mongodb.MongoClient( "s2016tp4" );
db = cli.getDB( "img" );
gridfs = com.mongodb.gridfs.GridFS(db);
# 画面キャプチャ
filename = java.io.File(capture(SCREEN));
# GridFSにファイルを設定
gfsinputfile = gridfs.createFile(filename);
gfsinputfile.setContentType("image/png");
# ファイル名は扱いやすいよう「日-時」にしておく
now = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
gfsinputfile.setFilename("%s.png" % now);
# 登録する
gfsinputfile.save();
Sikuli可以使用capture(SCREEN)将屏幕图像保存为临时的png文件,并返回文件名,然后使用MongoDB的GridFS将其注册到img数据库中。
执行后,MongoDB的状态如下所示。似乎成功注册了一些内容。


使用mongofiles.exe尝试提取。
由于时间不够,今天尝试使用mongofiles.exe进行导出。
C:\mongoDB\bin>mongofiles /v /host:s2016tp4 /db:img get 20160207-231053.png
2016-02-07T23:20:27.253+0900 using write concern: w='1', j=false, fsync=false, wtimeout=0
2016-02-07T23:20:27.261+0900 connected to: s2016tp4
2016-02-07T23:20:27.262+0900 handling mongofiles 'get' command...
finished writing to 20160207-231053.png
看起来可以取出来了。

以下是实际提取的文件本身。 shì de .)

不知为何,出现了不必要的黑框在右边和下边,原因就先放一边吧,以后再查明吧。。。