我有兴趣在QML中将GPS位置元数据设置为捕获的图像。我注意到几个qml捕获元素中的setMetadata(key,value)方法,但我无法理解它是如何工作的,或者找到任何示例。
文档中的定义指出:
“将特定元数据键设置为后续图像的值 捕获“。
http://qt-project.org/doc/qt-5/qml-qtmultimedia-cameracapture.html
该方法有效吗?如果是这样,请举一个简单的例子。 如果没有,是否还有其他方法可以在Qt中设置(或编辑)图像元数据(即使需要使用C ++)?
更新(但未解决): 我尝试了以下代码,在桌面上运行的应用程序拍摄照片并保存。在我用预览(MAC)打开它并检查元数据......并没有什么特别的(没有评论键)。
Camera {
id: camera
captureMode: Camera.CaptureStillImage
Component.onCompleted: {
imageCapture.setMetadata("Comment","My Picture")
}
imageCapture {
resolution: "640x480"
onImageCaptured: {
console.log("Image Captured Callback : Preview : "+preview)
}
onImageSaved: {
console.log("Image Saved Callback : Save Path : "+path)
}
onImageMetadataAvailable: {
console.log("Image Metadata Callback : "+key+" = "+value)
}
}
}
答案 0 :(得分:1)
我认为您应该在开始捕获之前使用记录here 之前的密钥子集。
修改的
FWIW,这是Ubuntu的最小测试,Qt 5.3 - 我创建了一个空应用程序,添加了菜单命令,摄像头和查看器
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Window 2.0
import QtMultimedia 5.0
ApplicationWindow {
title: qsTr("Hello World")
width: 640
height: 480
menuBar: MenuBar {
Menu {
title: qsTr("File")
MenuItem {
text: qsTr("Exit")
onTriggered: Qt.quit();
}
MenuItem {
text: qsTr("Capture")
onTriggered: {
camA.imageCapture.setMetadata("Description", "my comment")
camA.imageCapture.captureToLocation("/home/carlo/Pictures/x.jpg")
}
}
}
}
Camera { id : camA }
VideoOutput { source: camA }
}
结果似乎没问题......