由于某些原因,直接从qml中保存png无效。我在Golang应用程序的顶部有一个qml UI。当我这样做
source.grabToImage(function(result){
console.log("image: ", result.url)
if (!result.saveToFile(urlNoProtocol)){
console.error('Unknown error saving to',urlNoProtocol);
} else {
console.log("saved to " + urlNoProtocol)
}
保存时出错。保存文件的位置来自fileDialog,我对其进行了预处理以删除file://
,据了解,在使用saveToFile
之前需要删除该qrc://
。但是从上面的代码中我得到了一个未知的错误保存。
我怀疑这与嵌入二进制应用程序中的qml有关(也许与grabToImage
有关)
无论如何,我目前的计划是将图像发送到golang后端并从那里保存出来,所以我的问题是,如何从saveToFile
或sudo.exec(command, options,
function(error, stdout, stderr){
if (error) throw error;
console.log(stdout)
});
中获取图像字节然后保存?
N.B在Golang和qml之间的接口上使用therecipe / qt
答案 0 :(得分:0)
我已经使用这种方法来抓取屏幕截图。
function performScreenShot(item, name) {
if(typeof(item) === "undefined") {
return;
}
else if(typeof(name) !== "string") {
name = "screenshot.png"
}
item.grabToImage(function(result) {
result.saveToFile(name);
});
}
用法示例:-
performScreenShot(main, "screenshot-" + screenShotIndex + ".png")
主要是我的对象ID,而screenShotIndex是即时递增的,以便不覆盖以前的任何捕获。
确保您对设备具有写权限。