# Tomar Fotos en Android VClient

**URL:** <https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135>\
**Category:** Velneo\
**Created:** [9 Abril, 2019 22:07 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135 "2019-04-09T22:07:34Z")\
**Posts on this page:** 15\
**Page:** 3

<div class="post-metadata">

**Author:** ![aguevara](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@aguevara](https://foros.velneo.com/u/aguevara)\
**Post date:** [23 Junio, 2020 20:14 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/41 "2020-06-23T20:14:07Z")

</div>

Gracias por tu ayuda. He probado y funciona muy bien. Unicamente me di cuenta que la imagen importada desde un movil en formato vertical, velneo la muestra en formato horizontal (girada). ¿Hay una forma de controlar esto desde QML?. Por otra parte tambien quisiera limitar la resolucion de la foto para que no consuma mucho espacio en disco. ¿Es posible?  
Gracias nuevamente.

---

<div class="post-metadata">

**Author:** ![ccuesta](https://avatars.discourse-cdn.com/v4/letter/c/c77e96/32.png) [@ccuesta](https://foros.velneo.com/u/ccuesta)\
**Post date:** [14 Enero, 2021 09:48 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/42 "2021-01-14T09:48:26Z")

</div>

Hola, me encuentro en la misma situación que tenías, me aparece el cuadro en negro, ¿Como pudiste solucionarlo?

Gracias.

---

<div class="post-metadata">

**Author:** ![roberto](https://avatars.discourse-cdn.com/v4/letter/r/8baadc/32.png) [@roberto](https://foros.velneo.com/u/roberto)\
**Post date:** [27 Mayo, 2021 10:26 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/43 "2021-05-27T10:26:25Z")

</div>

Hola,

¿Alguien ha podido cambiar la resolución de la foto capturada en QML, antes de guardarla?

Gracias.

---

<div class="post-metadata">

**Author:** ![carlos](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlos/32/5261_2.png) [@carlos](https://foros.velneo.com/u/carlos)\
**Post date:** [27 Mayo, 2021 10:35 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/44 "2021-05-27T10:35:40Z")

</div>

creo que es bastante limitado el acceso a las fotos con android. Yo he tenido problemas hasta para girar la foto…

---

<div class="post-metadata">

**Author:** ![roberto](https://avatars.discourse-cdn.com/v4/letter/r/8baadc/32.png) [@roberto](https://foros.velneo.com/u/roberto)\
**Post date:** [27 Mayo, 2021 10:55 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/45 "2021-05-27T10:55:57Z")

</div>

En soporte hay abierta una incidencia sobre lo de girar las fotos.

VELNEO-7794

Las fotos hechas con una aplicación desde un móvil en posición vertical se toman giradas a 90º.

---

<div class="post-metadata">

**Author:** ![roberto](https://avatars.discourse-cdn.com/v4/letter/r/8baadc/32.png) [@roberto](https://foros.velneo.com/u/roberto)\
**Post date:** [27 Mayo, 2021 10:58 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/46 "2021-05-27T10:58:12Z")

</div>

El problema con la resolución de las fotos, es que las guarda con la máxima resolucíón.

---

<div class="post-metadata">

**Author:** ![bitcodesoft](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bitcodesoft](https://foros.velneo.com/u/bitcodesoft)\
**Post date:** [27 Mayo, 2021 20:40 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/47 "2021-05-27T20:40:06Z")

</div>

> **[Camera plugin](https://www.bitcodesoft.com/index.php/project/qmlsign-2/)**
>
> Captura de firmas plataformas móviles Componente QML que permite incorporar a tus aplicaciones móviles en Velneo la captura de firmas.

Con este widget capturas las imágenes a la resolución que tu le indiques directamente desde el widget, control del zoom, flash, etc., y no hay ningún problema con la rotación de las fotos capturadas, las rota de forma automática, es decir siempre se van a ver en la posición correcta.

---

<div class="post-metadata">

**Author:** ![carloslaguna](https://avatars.discourse-cdn.com/v4/letter/c/a8b319/32.png) [@carloslaguna](https://foros.velneo.com/u/carloslaguna)\
**Post date:** [15 Mayo, 2024 22:26 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/48 "2024-05-15T22:26:49Z")

</div>

Hola,

Me permito recuperar este post para consultaros si habéis podido actualizar las librerías de QT ya que para la versión 35 de Velneo han dejado de funcionar.

Un saludo

---

<div class="post-metadata">

**Author:** ![correo](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/correo/32/5689_2.png) [@correo](https://foros.velneo.com/u/correo)\
**Post date:** [18 Mayo, 2024 07:08 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/49 "2024-05-18T07:08:01Z")

</div>

Hola carloslaguna.

Lamentablemente, en la versión 35, el Velneo QML ha dejado de ser multiplataforma.  
Las versiones **iOS** y **Android** de Velneo 35 funcionan ahora con las **librerías QT 6.5** , que no son compatibles con la versión de escritorio de Velneo 35 con las librerías **QT 5.15**.

Mientras exista esta dualidad, habrá que escribir **código QML para ambas versiones** de QT, para móviles y para escritorio. Espero que se solucione para la versión Velneo 36.

Concretamente, para el uso de la cámara la nueva librería [QtMultimedia de QT 6.5 ha cambiado totalmente](https://doc.qt.io/qt-6.5/qtmultimedia-changes-qt6.html), siendo incompatible el código QML que tengamos actualmente.

Creo que la recomendación más sensata es no actualizar a Velneo 35 las aplicaciones móviles que dependan de código QML, aunque lo mejor es consultar a soporte de Velneo.

Saludos  
Paco Satué

---

<div class="post-metadata">

**Author:** ![carloslaguna](https://avatars.discourse-cdn.com/v4/letter/c/a8b319/32.png) [@carloslaguna](https://foros.velneo.com/u/carloslaguna)\
**Post date:** [18 Mayo, 2024 07:32 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/50 "2024-05-18T07:32:26Z")

</div>

Hola Paco,

Tienes toda la razón y ese era el plan hasta que, el usuario sigue su propio camino y elige actualizar la aplicación de vClient en sus terminales de PDAs.

He estado viendo la documentación y cambia totalmente el uso. Ayer hice una primera versión funcional de la cámara con QML funcional en la versión 35.

Tengo que añadir funciones como el zoom o el flash, pero al menos la incidencia que me había provocado estará resuelta en breve.

PD. Consulté con soporte y me dieron los instaladores de la versión 34 para Android. Pero descarté la opción al tenerlo que desplegar en tantos terminales.

Un saludo!

---

<div class="post-metadata">

**Author:** ![aguevara](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@aguevara](https://foros.velneo.com/u/aguevara)\
**Post date:** [15 Abril, 2025 03:02 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/51 "2025-04-15T03:02:54Z")

</div>

Hola carloslaguna,  
¿Quería consultarte si lograste implementar código QML funcional para tomar fotografías desde dispositivos móviles, con velneo 35?  
Por el momento no he podido tomar fotos como antes, pero si me dices que es posible, puedo retomar el caso.  
Un saludo.

---

<div class="post-metadata">

**Author:** ![bantonio](https://avatars.discourse-cdn.com/v4/letter/b/3be4f8/32.png) [@bantonio](https://foros.velneo.com/u/bantonio)\
**Post date:** [29 Septiembre, 2025 10:17 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/52 "2025-09-29T10:17:20Z")

</div>

Yo ya lo he conseguido te paso el codigo QML::

// QML compatible con Velneo v7 35 (Qt 6.x)  
import QtQuick  
import QtMultimedia

Item {  
id: root  
width: 360; height: 640

// === API expuesta a Velneo ===  
property url fotoPath: “” // ruta del último fichero (file:///…)  
property real zoom: 1.0 // factor de zoom actual  
property string lastError: “” // último error

// — Dispositivos/cámara —  
MediaDevices { id: devices } // lista de cámaras disponibles

Camera {  
id: cam  
// Puedes forzar trasera si quieres:  
// cameraDevice: devices.defaultVideoInput  
// active lo controlamos en activarCamara()  
}

ImageCapture {  
id: capt  
onImageSaved: function(requestId, fileName) {  
// Normaliza a file:///  
root.fotoPath = fileName.indexOf(“file:///”) === 0  
? fileName  
: “file:///” + fileName.replace(/\/g, “/”)  
}  
onErrorOccurred: function(id, error, message) { root.lastError = message }  
}

CaptureSession {  
id: session  
camera: cam  
imageCapture: capt  
videoOutput: preview  
}

VideoOutput {  
id: preview  
anchors.fill: parent  
// Evita que el preview “corte” la imagen  
fillMode: VideoOutput.PreserveAspectFit  
}

// Gestos: pellizco para zoom (si el dispositivo lo soporta)  
PinchArea {  
anchors.fill: parent  
property real base: 1.0  
onPinchStarted: base = cam.zoomFactor \> 0 ? cam.zoomFactor : 1.0  
onPinchUpdated: {  
var maxZ = cam.maximumZoomFactor \> 1 ? cam.maximumZoomFactor : 4.0  
cam.zoomFactor = Math.max(1.0, Math.min(maxZ, base \* pinch.scale))  
root.zoom = cam.zoomFactor  
}  
}

// ===== Funciones invocables desde Velneo =====  
// Enciende cámara y pone zoom 1x  
function activarCamara() {  
lastError = “”  
try {  
cam.active = true  
if (cam.zoomFactor !== undefined) cam.zoomFactor = 1.0  
root.zoom = cam.zoomFactor || 1.0  
} catch (e) { lastError = e.toString() }  
}

// zoomDeseado \>= 1.0 ; deviceId opcional (string que coincida con MediaDevices.videoInputs[i].id)  
function configurar(zoomDeseado, deviceId) {  
lastError = “”  
try {  
if (deviceId && deviceId !== “”) {  
// Buscar y asignar el dispositivo por id  
var list = devices.videoInputs  
for (var i = 0; i \< list.length; i++) {  
if (list[i].id === deviceId) { cam.cameraDevice = list[i]; break; }  
}  
}  
// Aplicar zoom si está soportado  
var z = (zoomDeseado && zoomDeseado \>= 1.0) ? zoomDeseado : 1.0  
if (cam.zoomFactor !== undefined) {  
var maxZ = cam.maximumZoomFactor \> 1 ? cam.maximumZoomFactor : 4.0  
cam.zoomFactor = Math.min(z, maxZ)  
root.zoom = cam.zoomFactor  
} else {  
root.zoom = 1.0  
}  
} catch (e) { lastError = e.toString() }  
}

// Dispara foto (ruta final en fotoPath cuando onImageSaved se ejecute)  
function tomarFoto() {  
lastError = “”  
try {  
capt.captureToFile() // deja que el sistema escoja ruta  
return true  
} catch (e) {  
lastError = e.toString()  
return false  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![bantonio](https://avatars.discourse-cdn.com/v4/letter/b/3be4f8/32.png) [@bantonio](https://foros.velneo.com/u/bantonio)\
**Post date:** [30 Septiembre, 2025 22:53 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/53 "2025-09-30T22:53:03Z")

</div>

Lo he pulido un poco mas os dejo la docu de como lo he realizado.

[QT 6X VELNEO CAMARA FOTOS.pdf](https://foros.velneo.com/uploads/short-url/bVbQKt6pn2JNYMIh9opKEDz4iYZ.pdf) (380,7 KB)

---

<div class="post-metadata">

**Author:** ![aguevara](https://avatars.discourse-cdn.com/v4/letter/a/fbc32d/32.png) [@aguevara](https://foros.velneo.com/u/aguevara)\
**Post date:** [30 Octubre, 2025 23:04 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/54 "2025-10-30T23:04:27Z")

</div>

Gracias bantonio! Haré pruebas para ver cómo actualizar el código y rehabilitar esta función de captura de fotos.

Un saludo.

---

<div class="post-metadata">

**Author:** ![carloslaguna](https://avatars.discourse-cdn.com/v4/letter/c/a8b319/32.png) [@carloslaguna](https://foros.velneo.com/u/carloslaguna)\
**Post date:** [14 Noviembre, 2025 09:27 UTC](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135/55 "2025-11-14T09:27:18Z")

</div>

En primer lugar, muchas gracias por el gran aporte actualizado @bantonio .

Tengo una duda sobre el QML y el tratamiento de colores que hace al realizar la fotografía. Te adjunto dos imágenes.

La primera realizada con la aplicación nativa del móvil en la que se ven los colores correctos. Añado imagen a continuación.

 ![CAM_NATIVA_Color_OK](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/0/0a1c592985e270bc1e38d3ddde866767b6a80ad4.jpeg)

La segunda realizada con el QML en una aplicación Velneo con los colores incorrectos. Añado imagen a continuación.

 ![CAM_QML_Color_Incorrecto](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/4/47b2c77b6cc76452870d6371af516271665fb2fa.jpeg)

¿Sabes qué puede estar sucediendo?  
Gracias por tu ayuda

[Página anterior](https://foros.velneo.com/t/tomar-fotos-en-android-vclient/10135.md?page=2)
