连接滑块以控制qml Camera上的缩放

时间:2016-11-22 09:01:16

标签: qt camera qml zoom

我正在使用相机拍电影 我想使用滑块来缩放视频,例如谷歌地图的缩放 我找到了另一个Question on SO,但建议的解决方案适用于点击,而我想为滑块开发解决方案。
我编写的代码无法正常工作。 我没有发现错误,但视频大小会非常大,然后我看不到视频 我尝试将digitalZoom设置为相机,但我有这个错误: 相机不支持缩放。。我知道我的相机不支持" DigitalZoom"和" OpticalZoom"。我想找到一种方法来放大从相机拍摄的视频 的 My camera is 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
          }
      }
  }

1 个答案:

答案 0 :(得分:0)

您是否尝试使用滑块实现放大/缩小功能,就像普通的移动相机应用一样,如果是,请考虑下面未经测试的代码段,因为目前我没有安装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
          }
      }

我还希望您查看这些类型的官方文档。SliderCamera。如果您在下面的评论后需要进一步澄清。