AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Controles, páginas y ventanas / Funciones de video
  • Guardar una foto
  • Condiciones de uso:
  • Permisos necesarios
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Captura las imágenes recibidas de la cámara:
  • como imagen: toma una foto.
  • como video: graba un video.
AndroidiPhone/iPad
Advertencia
A partir de la versión 27, esta función queda obsoleta para aplicaciones Android e iOS. Esta función solo se conserva para controles Cámara creados con versiones anteriores y con la opción "Modo compatible con la versión 26" activada (pestaña "General" de la ventana de descripción del control).
Dependiendo de la plataforma, se utilizan los siguientes formatos de foto y video:
  • WINDEVWindows imágenes BMP o videos AVI.
    Si la extensión del archivo es .jpg o .jpeg, la imagen se guarda en formato JPEG
  • Android imágenes o videos JPEG. El formato y la calidad del video dependen de la configuración predeterminada del dispositivo y pueden variar de un dispositivo a otro.
  • iPhone/iPad imágenes o videos JPEG. El formato y la calidad del video dependen de la configuración predeterminada del dispositivo y pueden variar de un dispositivo a otro.
AndroidiPhone/iPad Observación: Para obtener una foto o un video con la aplicación de cámara nativa del dispositivo, utilice la función VideoStartApp.
Ejemplo
WINDEVReportes y ConsultasCódigo de Usuario (UMC)
// Records the video captured in the "CAM_Kitchen" control
// as a 1-minute AVI file ("C:\Temp\MyVideo.AVI")
ResSave = VideoCapture(CAM_Kitchen, "C:\Temp\MyVideo.AVI", viVideoCapture, 60)
IF ResSave = True THEN
Info("Video successfully saved")
ELSE
Error(ErrorInfo())
END
Sintaxis
<Result> = VideoCapture(<Camera control> , <File to create> [, <Type of capture> [, <Capture duration> [, <Number of images per second> [, <Display during capture>]]]])
<Result>: Booleano
  • True si el video se grabó correctamente,
  • False en caso contrario. Para obtener más información sobre el error, utilice la función ErrorInfo.
<Camera control>: Nombre del control
Nombre del control Cámara a utilizar. No es necesario que se muestre el video en un control Cámara para guardarlo.
<File to create>: Cadena de caracteres
Nombre y ruta completa (o relativa) del archivo a crear.
Android Cuando se toma una foto, se crea un archivo JPEG. Si se graba un video, el formato y la calidad del mismo dependerán de la configuración predeterminada del dispositivo y pueden variar de un dispositivo a otro.
WINDEVWindows Cuando se toma una foto, se crea un archivo BMP. Cuando se graba un video, se crea un archivo AVI
Atención: No se pueden utilizar rutas UNC.
<Type of capture>: Constante opcional de tipo Integer
Tipo de captura:
viPictureCapture
WINDEVWindows Captura una imagen y la guarda como un archivo BMP.

Android Captura una imagen y la guarda como un archivo JPEG.
viVideoCapture
(Valor predeterminado)
WINDEVWindows Captura un video y lo guarda como un archivo AVI.

Android Si se graba un video, el formato y la calidad del mismo dependerán de la configuración predeterminada del dispositivo y pueden variar de un dispositivo a otro.
<Capture duration>: Entero opcional
Duración de la grabación de video (en segundos). Si este parámetro se establece en 0 o no se especifica, la grabación de video se detendrá:
  • al llamar a la función VideoStop.
  • cuando no haya más espacio en el disco.
Este parámetro puede ser:
  • un número entero que corresponde al número de segundos,
  • una variable de tipo Duration,
  • la duración en un formato legible (por ejemplo, 1 s o 10 ms).
<Number of images per second>: Entero opcional
Número de imágenes guardadas por segundo (15 de forma predeterminada). Este parámetro solo se tiene en cuenta si <Type of capture> es igual a viVideoCapture.
<Display during capture>: Booleano opcional
  • True (predeterminado) si la secuencia de vista previa debe mostrarse en el control Cámara especificado,
  • False en caso contrario.
AndroidiPhone/iPad Este parámetro no se tiene en cuenta. La secuencia de vista previa siempre se muestra en el control Cámara.
Observaciones

Guardar una foto

Solo se guardará en formato BMP la imagen que se muestra al ejecutar la función VideoCapture. Para guardar esta imagen, también se puede utilizar:
  • la función dSaveImageBMP: la foto se guardará como un archivo BMP.
  • la función dSaveImageGIF: la foto se guardará como un archivo GIF.
  • la función dSaveImageJPEG: la foto se guardará como un archivo JPEG.

Condiciones de uso:

  • WINDEVWindows Para utilizar esta función, se debe conectar una cámara Web al equipo actual.
  • Android Esta función requiere un dispositivo con cámara. También puede utilizarse en el emulador Android (solo para capturar imágenes).
  • Android Para obtener y configurar los ajustes de la cámara, utilice las funciones VideoParameter y VideoListParameter.
Observación: Esta función es equivalente a la función CameraCapture.
Android

Permisos necesarios

La llamada a esta función modifica los permisos requeridos por la aplicación.
Permisos necesarios:
  • CAMERA: Este permiso permite a las aplicaciones acceder a la cámara.
  • RECORD_AUDIO: Este permiso permite a las aplicaciones grabar el sonido.
Componente: wd290obj.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
SALVAR FOTO NO BANCO REDIMENSIONANDO O TAMANHO E AJUSTANDO A QAULIDADE
PROCEDURE PhotoEnregistre()

path_imagem is string = fCurrentDir()+fSep()+"IMAGEM.JPG" // ONDE VAI SALVAR A IMAGEM

//VideoParameter(vipPhotoResolution,"1080 1080")

VideoCapture(CAM_Appareil,path_imagem,viPictureCapture) // TIROU A FOTO

IMAGEM is Image // IMAGEM DE TRABALHO PARA REDIMENSIONAR O BUFFER EM OUTRO TAMANHO

IMAGEM = fLoadBuffer(path_imagem)

IF fFileExist(path_imagem) = True THEN //DEU CERTO
Info("A Imagem "+path_imagem+" Existe no disco")
dResize(IMAGEM,320,480,drStretched) //RESIZE DA IMAGEM
dSaveImageJPEG(IMAGEM,path_imagem,80) //80%
ELSE
Info("A Imagem "+path_imagem+" nao existe no disco") //DEU ERRADO
RETURN
END

T001_FOTOS.T001_DATA_HORA = DateSys() + TimeSys()

T001_FOTOS.T001_FOTO = fLoadBuffer(path_imagem) //BUFFER MODIFICADO E SALVO NO BINARIO

IF HAdd(T001_FOTOS)=True THEN
ShellExecute(path_imagem) //GRAVOU NO BANCO E ABRIU A IMAGEM
END
Boller
23 03 2023

Última modificación: 29/09/2022

Señalar un error o enviar una sugerencia | Ayuda local