连接滑块以控制 qml 相机的缩放

Posted

技术标签:

【中文标题】连接滑块以控制 qml 相机的缩放【英文标题】:Connect a slider to control zoom on qml Camera 【发布时间】:2016-11-22 09:01:16 【问题描述】:

我正在使用相机拍摄电影。 我想使用滑块来缩放视频,例如缩放谷歌地图。 我找到了另一个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
          
      
  

【问题讨论】:

那么你的问题是什么? not working correctly 是什么意思?您会遇到什么错误/意外行为? 您使用的是什么设备?基本上所有相机都支持数码变焦,只有启用光学变焦的移动相机很少见。 【参考方案1】:

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

我也想让你看看这些类型的官方文档。Slider,Camera。如果您需要进一步说明,请在下方发布 cmets。

【讨论】:

以上是关于连接滑块以控制 qml 相机的缩放的主要内容,如果未能解决你的问题,请参考以下文章

将本机 iphone 相机缩放滑块和 youtube 播放器控制器添加到我的应用程序

如何设置滑块以固定位置?

添加滑块以绘制热图动画-python

如何获得光滑的滑块以在循环中平滑过渡

创建滑块以动态显示图像中两条线的距离

如何添加滑块以在视图中向下移动? [关闭]