在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

首先,使用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。

chunks.png
files.png

使用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的状态如下所示。似乎成功注册了一些内容。

chunks2.png
files2.png

使用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

看起来可以取出来了。

local.png

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

20160207-231053.png

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

广告
将在 10 秒后关闭
bannerAds