Tomar e cargar fotos de realidade mixta
Neste artigo, imos crear unha aplicación que pode sacar fotos dunha sesión de realidade mixta e cargalas nun cartafol en OneDrive. Usaremos o control Ver en MR neste exemplo, pero os controis Ver a forma en MR e Cámara de medición tamén funcionarían.
Abrangueremos as seguintes tarefas:
- Engadir un control de obxecto 3D para ver e manipular un obxecto 3D de mostra
- Conectar o control de obxecto 3D a un control Ver en MR para ver o obxecto 3D no mundo real
- Engadir un control de galería para ver as fotos tomadas co control Ver en MR
- Cargar as fotos en OneDrive cun fluxo de Microsoft Power Automate
- Cargar fotos capturadas en realidade mixta en Dataverse
Requisitos previos
- Cree unha aplicación de lenzo en branco.
- Cree un cartafol chamado MRPhotos en OneDrive. Usará este cartafol para almacenar as fotos cargadas.
Suxestión
Os controis de realidade mixta (MR) funcionan mellor en ambientes ben iluminados con superficies de textura plana. O seguimento é mellor nos dispositivos compatibles con LIDAR.
Engadir un botón para facer unha foto dun obxecto 3D en realidade mixta
Este exemplo ten tres partes. En primeiro lugar, engadiremos un botón que permite aos usuarios facer unha foto dun obxecto 3D nunha experiencia de realidade mixta.
Insira un control de obxecto 3D.
Coa aplicación aberta para a edición en Power Apps Studio:
Abra o separador Inserir e expanda Elementos multimedia.
Seleccione obxecto 3D para colocar un obxecto 3D na pantalla da aplicación. Arrastre o control á pantalla para situalo con máis precisión.
O control vén cunha forma de cubo transparente. Se quere, cambie a propiedade de Orixe do control para cargar un modelo 3D diferente. Neste exemplo, usaremos o URL https://raw.githubusercontent.com/microsoft/experimental-pcf-control-assets/master/robot_arm.glb.
Inserir e conectar un control Ver en MR
Abra o separador Inserir e expanda Realidade mixta.
Seleccione Ver en MR para colocar o control no centro da pantalla da aplicación ou arrastre o control á pantalla para posicionalo con máis precisión.
Cambie a propiedade de Orixe do control a 3DObject1.Source. (3DObject1 é o nome do control de obxecto 3D que engadimos anteriormente). Esta expresión dirixe o control Ver en MR para superpoñer o modelo 3D na fonte da cámara do dispositivo.
Garda e publica a aplicación e execútaa no teu dispositivo móbil.
Seleccione Ver en MR para ver o obxecto 3D en realidade mixta. Seleccione a icona da cámara para facer unha foto da vista de MR.
Insirir un control de galería para ver as fotos tomadas na aplicación
A continuación, engadiremos unha galería para que os usuarios poidan ver as fotos que fixeron.
Edite a aplicación de novo. Abra o separador Inserir e coloque un control de Galería vertical na pantalla.
Cambie a propiedade de Elementos do control a ViewInMR1.Photos. (ViewInMR1.Photos é o nome do control Ver en MR que engadimos anteriormente).
Opcionalmente, cambie a propiedade de Deseño da galería a Imaxe e título.
Previsualice a aplicación e seleccione Ver en MR para xerar unha foto de mostra. A galería encherase cunha imaxe de mostra.
Nota
Se os usuarios saen da vista de MR para ver a galería e, a continuación, acceden de novo á vista de MR e sacan máis fotos, as novas fotos substituirán ás que fixeran anteriormente.
Engada unha superposición máis grande ás imaxes en miniatura da galería
Para que as fotos da galería sexan máis fáciles de ver, pode engadir unha superposición a tamaño completo que aparece cando o usuario selecciona unha imaxe en miniatura.
Edite a aplicación de novo. Abra o separador Inserir e expanda Elementos multimedia.
Seleccione Imaxe para colocar un control de imaxe na pantalla. Móvao e déalle as dimensións segundo como quere que apareza a foto máis grande cando se selecciona unha imaxe en miniatura.
Modifique as propiedades do control da imaxe deste xeito: | Propiedade | Valor | | - | - | | OnSelect | UpdateContext({vVisibleImageZoom:false}) | | Image | Gallery1.Selected.Image2 (supoñendo que o control da galería é Galería1 e a primeira imaxe en miniatura é Imaxe2) | Visible | vVisibleImageZoom
Seleccione a primeira imaxe en miniatura no control da galería. Cambie a súa propiedade OnSelect a UpdateContext({vVisibleImageZoom:true}).
Garda e publica a aplicación e execútaa no teu dispositivo móbil.
Seleccione Ver en MR e logo seleccione a icona da cámara para facer unha foto. Seleccione a frecha cara atrás na parte superior da pantalla para saír da vista de MR.
Seleccione a miniatura na galería para mostrar unha versión máis grande da foto. Seleccióne a imaxe para ocultala.
Cargar fotos en OneDrive cun fluxo de Power Automate
Por último, imos crear un fluxo de traballo usando o panel de Power Automate. O fluxo de traballo carga fotos da aplicación a un cartafol chamado MRPhotos en OneDrive.
Crear un fluxo en Power Automate
Edite a aplicación. No menú de creación de aplicacións, seleccione Power Automate > Crear novo fluxo.
Busque e seleccione o modelo do botón de Power Apps.
Na ventá Crear o seu fluxo, seleccione Editar en modo avanzado.
Seleccione o botón Power Apps na parte superior da xanela e introduza un novo nome para o seu fluxo. Neste exemplo, nomearemos o fluxo Cargar foto de MR.
Seleccione o botón Power Apps na parte superior da xanela e introduza un novo nome para o seu fluxo. Neste exemplo, nomearemos o fluxo Cargar foto de MR.
Busque PowerApps (V2) e seleccione o desencadeador de PowerApps (V2).
Seleccione Engadir unha entrada e logo seleccione Ficheiro.
Cambie a etiqueta Contido do ficheiro a Imaxe.
Seleccione Novo paso. Busque Ficheiro de creación de OneDrive e seleccione a acción Crear ficheiro.
En Camiño do cartafol, seleccione a icona do cartafol e navegue ata o cartafol MRPhotos que creou anteriormente.
En Nome de arquivo, introduza @{triggerBody()?['file']?['name']} (O texto cambia a "file.name.")
En Contido do arquivo, introduza @{triggerBody()['file']['contentBytes']} (O texto cambia a "Image.")
Garde o fluxo.
O fluxo completo debería parecerse a isto:
Conectar o fluxo de traballo a un botón da aplicación
Volva á súa aplicación en Power Apps Studio. O fluxo aparece agora en Fluxos dispoñibles.
Abra o separador Inserir e seleccione Botón. Coloque o control do botón na pantalla e cambie o tamaño segundo sexa necesario.
Cambie a propiedade de Texto do control do botón a Cargar fotos.
Na barra de fórmulas da parte superior da ventá de Power Apps, seleccione a propiede OnSelect. Seleccione Acción > Power Automate > Cargar foto de MR.
A propiedade OnSelect do control do botón cambia a UploadMRPhoto.Run(.
Para cargar a última foto tomada, pegue o seguinte código despois do paréntese inicial: {file:{name:GUID() & ".png", contentBytes:Last(ViewInMR1.Photos).ImageURI}})
Se colocou o control do botón dentro da galería, pegue o seguinte código no seu lugar: {file: {name:GUID() & ".png", contentBytes:ThisItem.ImageURI}})
Para facer que o botón cargue todas as fotos tomadas, elimine UploadMRPhoto.Run( e pegue o seguinte código: ForAll(ViewInMR1.Photos, UploadMRPhoto.Run({file:{name:GUID() & ".png", contentBytes:ImageURI}}))
Previsualice a aplicación e seleccione Ver en MR e, a continuación, seleccione Cargar fotos. Comprobe o cartafol MRPhotos en OneDrive e confirme que a foto de mostra foi cargada.
Engadir capacidade sen conexión á aplicación
Pode usar a aplicación aínda que teña unha conectividade de rede limitada ou nula usando as funcións SaveData e LoadData.
Cargar fotos capturadas en realidade mixta en Dataverse
Pode engadir fotos a táboas de Dataverse a través dunha columna de tipo de datos de imaxe. As columnas de imaxe en Dataverse teñen dous campos obrigatorios —Completo e Valor— que se poden configurar na saída ImageURI dos controis de MR.
Por exemplo, se quere cargar a primeira foto capturada polo marcado no control de MR a unha columna de Dataverse chamada Imaxe:
Image: {Full: First(MarkupInMR.Photos).ImageURI, Value: First(MarkupInMR.Photos).ImageURI}
Consulte tamén
Nota
Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)
Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).