[英]Connect a slider to control zoom on qml Camera
我正在使用相機拍攝電影。
我想使用滑塊來縮放視頻,例如Google地圖的縮放。
我在SO上找到了另一個問題,但建議的解決方案適用於單擊,而我想為滑塊開發解決方案。
我寫的代碼無法正常工作。 我沒有發現錯誤,但是視頻尺寸會很大,那么我看不到視頻。
我嘗試為相機設置digitalZoom,但出現此錯誤: 相機不支持縮放。 。我知道我的相機不支持“ DigitalZoom”和“ OpticalZoom”。 我想找到一種放大從相機拍攝的視頻的方法。
我的相機是dino ccd。 對不起,朋友們,我無法添加評論,我遇到了這個錯誤:“您必須有50個聲譽才能發表評論”。
VideoOutput {
id: viewfinder
source: camera
anchors.fill: parent
focus : true
transform: [
Scale {
id: zoomScale
},
Translate {
id: zoomTranslate
}
]
//Keys.onLeftPressed: viewfinder.seek(viewfinder.position - 5000)
//Keys.onRightPressed: viewfinder.seek(viewfinder.position + 5000)
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.AllButtons
onClicked: {
var zoomIn = mouse.button === Qt.LeftButton;
zoomScale.origin.x = mouse.x;
zoomScale.origin.y = mouse.y;
}
}
Slider {
id:zoomVideo
orientation: Qt.Vertical
minimumValue: 0
maximumValue: 100
stepSize: 10
onValueChanged: {
zoomScale.xScale = zoomVideo.value
zoomScale.yScale = zoomVideo.value
}
}
}
您是否要像普通移動相機應用程序一樣嘗試使用滑塊實現放大/縮小功能,如果可以,請考慮以下未經測試的代碼段,因為當前我沒有安裝Qt IDE的計算機,但是應該可以幫助您理解概念。
Camera {
id: camera
digitalZoom:zoomSlider.value
//if opticalZoom is supported uncomment below line
//opticalZoom:zoomSlider.value
// rest of your settings
}
VideoOutput {
id: viewfinder
source: camera
anchors.fill: parent
focus : true
}
Slider {
id:zoomSlider
orientation: Qt.Vertical
minimumValue: 0
maximumValue: camera.maximumDigitalZoom //or camera.maximumOpticalZoom
stepSize:camera.maximumDigitalZoom/10 // going through 10 steps
value:1.0 // initial zoom level
anchors{
left:parent.left
leftMargin:5
verticalCenter:parent.verticalCenter
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.