Vamos a analizar como podemos reducir imágenes dentro de Power Automate, usando Sharepoint como base.
NOTA: Esta función no está disponible para SharePoint on-premise ni para SharePoint 2019.
SharePoint Online puede generar vistas previas de imagen para documentos en formato PNG. La reproducción de imágenes está basada en el siguiente handler:
/_layouts/15/getpreview.ashx
En cuanto a los tipos de archivo soportados, a día de hoy tenemos 47 formatos con soporte:
.wmv, .3gp, .3g2, .3gp2, .asf, .mts, .m2ts, .avi, .mod, .dv, .ts, .vob, .xesc, .mp4, .mpeg, .mpg, .m2v, .ismv, .mov, .m4v, .docm, .docx, .dotx, .dotm, .bmp, .jpg, .jpeg, .tiff, .tif, .png, .gif, .emf, .wmf, .psd, .svg, .ai, .eps, .pdf, .pptm, .pptx, .potm, .potx, .ppsm, .ppsx, .xlsm, .xlsx, .aspx
Para poder ver una lista con todos los tipos de archivo soportados para el inquilino actual, enviaremos la siguiente GET-request al servidor:
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?action=supportedtypes
Lo primero para poder utilizar este handler es que necesitaremos identificar el documento, vista previa del cual queremos obtener.
IDENTIFICADOR DE DOCUMENTO
Hay dos formas de identificar el documento cuya imagen previa necesitamos. En el primer método proveeremos los identificadores de la Colección de Sitio (guidSite), el Sitio Web (guidWeb) y el Documento (guidFile):
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?guidSite={GUID}&guidWeb={GUID}&guidFile={GUID}
Este método es más complicado, lo cual veremos más adelante.
Para el segundo método, tan solo vamos a proveer la ruta del documento. No es necesario proveer los tres identificadores mencionados arriba. Solo una ruta será necesaria para la reproducción de la imagen previa:
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?path={pathToTheDocument}
TAMAÑO DE LA MINIATURA
El tamaño de la miniatura estará basado en su ancho mientras que el tamaño de alto será calculado de manera dinámica. Para cambiar el tamaño usaremos el parámetro «resolution». Los posibles valores que podemos usar serán:
0: 300px
1: 480px
2: 750px
3: 1024px
4: 1600px
5: 2560px
6: Ancho original del documento
Si el parámetro está vacío, el ancho será 300px (ya que es el valor por defecto). Si el ancho pedido del documento excede el tamaño original, se usará el ancho original para renderizar.
Por ejemplo, para obtener una vista previa de 480 pixeles de ancho usaremos lo siguiente:
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?path={pathToTheDocument}&resolution=1
MÚLTIPLES VISTAS PREVIAS
A día de hoy, los siguientes tipos de archivo pueden tener múltiples miniaturas: .pptm, .pptx, .potm, .potx, .ppsm, .ppsx.
En otras palabras, es posible obtener vista previa de cualquier diapositiva de la presentación almacenada en SharePoint Online. Si, por ejemplo, buscamos obtener vista previa de la segunda diapositiva usaremos el siguiente parámetro index:
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?path={pathToTheSlideDeck}&index=2
CACHE
SharePoint almacena vistas previas en cache por una hora. Para acceder a estos datos usaremos el parámetro force:
https://{tenant}.sharepoint.com/_layouts/15/getpreview.ashx?path={pathToTheSlideDeck}&force=1
PARÁMETROS
Esta es la lista completa de parámetros que podemos usar:
Parámetro | Nota |
action | Opcional. Puede ser solo «supportedtypes» |
guidSite | Necesario si el parámetro guidFile es proveído. Es el identificador único (Guid) de la colección de sitio[?] donde el documento buscado se encuentra |
guidWeb | Requerido si el parámetro guidFile es proveído. Es el identificador único (Guid) del sitio donde el documento buscado se encuentra |
guidFile | Requerido si path está vacío. Es el identificador único (Guid) del documento |
path | Requerido si guidFile está vacío. Es la ubicación del documento |
resolution | Opcional. Es el tamaño de la imagen de vista previa |
clienttype | Opcional. Es el nombre del cliente. Usado solo para ubicación en ULS.[?] |
index | Opcional. Número de una página (no en base cero).[?] Aplicado solo para documentos de vista previa múltiple |
force | Opcional. Si su valor es «1», la renderización de imagen ignora datos en cache |
Estos son los parámetros principales para reducir imágenes y usarlos en consultas HTTP dentro de power automate, lo demas viene de tí.
Cualquier duda nos leemos abajo.