66-输入和显示-录制音频和视频及拍照- 图像捕获QImageCapture

图像捕获QImageCapture

用媒体捕获器QMediaCaptureSession的 setImageCapture(imageCapture:QImageCapture)方法将 QImageCapture 与 QMediaCatureSession 关联,可以捕获图像,实现拍照功能。

用QImageCapture类定义图像捕的方法如下所示

from PySide6.QtMultimedia import QImageCapture

QImageCapture(parent: Union[PySide6.QtCore.QObject,NoneType]= None)-> None
图像捕获 QImageCapture 的常用方法

图像捕获 QImageCapture 的常用方法如表所示,主要方法介绍如下

  • 当isReadyForCapture()的返回值是 True 时,可以进行拍照;

  • 用capture()方法进行拍照,返回值是拍照的识别号ID

    • 同时会发送imageCaptured(id;int,preview:QImage)信号和 imageExposed(id:int)信号,可以获取拍摄的图像;
  • 用captureToFile(location:str=)方法直接将拍摄的图像保存到文件中,

    • 同时发送imageCaptured(id;int,preview; QImage)信号、imageExposed(id;int)信号和imageSaved(id;int,fileName:str)信号
    • 如果没有给出保存的文件名和路径则使用默认的路径和文件名,如果只给出文件名,则保存到默认路径下
    • 完整路径可以通过imageSaved(id:int,fileName:str)信号的参数获取。
  • 用error()方法获取拍照时的出错状态返回值是QImageCapture.Error 举值可取以下值,对应值分别是0~5,用errorString()方法获取出错信息。:

    • QImageCapture.NoError
    • QImageCapture.notReadyError(设备没准备好)
    • QImageCapture.ResourceError(设备没准备好或不可用)
    • QImageCapture.OutOfSpaceError(存储空间不够)
    • QImageCapture,notSupportedFeatureError(设备不支持拍照)
    • QImageCapture.FormatError(格式出错)
  • 用setFileFormat(format: QImageCapture,FileFormat)方法设置拍照的格式,参数是QImageCapture,FileFormat 的枚举值,可取:

    • QImageCapture.FileFormat.JPEG
    • QImageCapture.FileFormat.PNG
    • QImageCapture.FileFormat.Tiff
    • QImageCapture.FileFormat.WebP
    • QImageCapture.FileFormat.UnspecifiedFormat
    • QImageCapture.FileFormat.LastFileFormat
  • 用setQuality(quality: QImageCapture.Quality)方法设置图像质量,参数是QImageCapture.Quality 的举值,可取以下值,=对应值分别是0~4:

    • QImageCapture.VeryLowQuality
    • QImageCapture.LowQuality
    • QImageCapture.NormalQuality
    • QImageCapture.HighQuality
    • QImageCapture.VeryHighQuality
QImageCapture的方法及参数类型返回值的类型说明
isReadyForCapture()bool获取是否可以拍照
[slot]capture()int进行拍照
[slot]captureToFile(location:str=‘’)int拍照到文件中
captureSession()QMediaCaptureSession获取关联的捕捉器
error()QImageCapture.Error获取出错状态
errorString()str获取出错信息
setFileFormat(QImageCapture.FileFormat)None设置文件格式
setMetaData(metaData:QMediaMetaData)None设置元数据
metaData()QMediaMetaData获取元数据
addMetaData(metaData:QMediaMetaData)None添加元数据
setQuality(quality:QImageCapture.Quality)None设置图像质量
quality()QImageCapture.Quality获取图像质量
setResolution(QSize)None设置分辨率
setResolution(width:int,height:int)None
resolution()QSize获取分辨率
[static]fileFormatDescription(QImageCapture.FileFormat)Str获取格式的信息
[static]fileFormatName(QImageCapture.FileFormat)str获取格式的名称
[static]supportedFormats()List[QlmageCapture.FileFormat]获取支持的格式
图像捕获QImageCapture 的信号

图像捕获 QImageCapture 的信号如表所示

其中imageAvailable(id:int,frame:QVideoFrame)信号的参数 QVideoFrame是视频,利用QVideoFrame 的 toImage()方法可以得到 QImage。

QImageCapture的信号及参数类型说 明
readyForCaptureChanged(ready:bool)准备状态发生改变时发送信号
imageCaptured(id: int,preview: QImage)捕捉到图像时发送信号
imageExposed(id:int)图像曝光时发送信号
imageSaved(id: int,fileName: str)保存图像时发送信号
imageAvailable(id: int,frame: QVideoFrame)可以获取图像时发送信号
metaDataChanged()元数据发生改变时发送信号
qualityChanged()图像质量发生改变时发送信号
errorOccurred(id:int,error: QImageCapture.Error,errorString:str)出现错误时发送信号
errorChanged()错误状态发生改变时发送信号
fileFormatChanged()文件格式发生改变时发送信号
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日,当挖目相待

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值