Funciones XPath/XQuery: relacionadas con imágenes

www.altova.com Expandir/Contraer todos Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Anexos > Funciones XSTL y XPath/XQuery > Funciones de extensión de Altova >

Funciones XPath/XQuery: relacionadas con imágenes

Las funciones de extensión XPath/XQuery para trabajar con imágenes son compatibles con la versión actual de MobileTogether Designer.

 

Nota sobre el nombre de las funciones y lenguajes

Puede utilizar todas las funciones de extensión de Altova en sus expresiones XPath/XQuery. Con ellas conseguirá funciones adicionales no disponibles en la biblioteca de funciones estándar de XPath, XQuery y XSLT.

En esta documentación el nombre de las funciones de extensión de Altova siempre termina con el sufijo [altova:] para evitar confundirlas con funciones de la biblioteca estándar. Por ejemplo: add-years-to-date [altova:].
Sin embargo, cuando las utilice en sus expresiones XPath/XQuery, no incluya ningún prefijo o sufijo en el nombre de la función. Por ejemplo: add-years-to-date(xs:date("2014-01-15"), 10).

 

Funciones XPath

(en expresiones XPath en XSLT):

XP1 XP2 XP3.1

Funciones XSLT

(en expresiones XPath en XSLT):

Xslt1 XSLT2 XSLT3

Funciones XQuery

(en expresiones XQuery en XQuery):

XQ1 XQ3.1

 

 

 

Clic para expandir/contraersuggested-image-file-extension [altova:]

suggested-image-file-extension(CadenaBase64 como string) como string?     XP3.1 XQ3.1

Toma la codificación base64 de un archivo de imagen como argumento y devuelve la extensión de archivo de la imagen registrada en la codificación base64 de la imagen. El valor devuelto es una sugerencia basada en la información sobre el tipo de imagen disponible en la codificación. Si esta información no está disponible, entonces devuelve una cadena vacía. Esta función es muy práctica a la hora de guardar una imagen base64 como archivo y recuperar de forma dinámica una extensión de archivo adecuada.

suggested-image-file-extension(/MisImágenes/TeléfonoMóvil/Imagen20141130.01) devuelve 'jpg'
suggested-image-file-extension($XML1/Personal/Persona/@photo) devuelve ''

 

En los ejemplos anteriores, se da por hecho que los nodos suministrados como argumento de la función contienen una imagen codificada en base64. El primer ejemplo recupera jpg como tipo de imagen y como extensión de archivo. En el segundo ejemplo, la codificación base64 dada no ofrece información sobre la extensión del archivo.

 

 

Clic para expandir/contraermt-transform-image [altova:]

mt-transform-image(ImagenBase64 como Base64BinaryString, Tamaño como item()+, Rotación como xs:integer, Calidad como xs:integer) como Base64BinaryString     XP3.1 XQ3.1

Toma una imagen codificada en base64 como primer argumento y devuelve una imagen codificada en base64 transformada. El segundo, tercer y cuarto argumento son los parámetros de imagen que se transforman: tamaño, rotación y calidad.

 

El argumento Tamaño ofrece tres opciones para ajustar el tamaño de la imagen.

(X,Y)

Valores de píxel absolutos. La relación de aspecto no se mantiene. No importa el orden del valor de altura y de ancho porque la altura y el ancho se seleccionan automáticamente en función de los lados largos y cortos de la imagen. El valor se introduce como una secuencia de dos elementos enteros. Los paréntesis son obligatorios.

X

Ajusta el tamaño de la imagen de forma proporcional, siendo X el lado largo nuevo en píxeles. La relación de aspecto se mantiene. El valor es un entero y se introduce sin comillas.

'X%'

Ajusta el tamaño de la imagen al porcentaje dado de las dimensiones originales. El valor debe darse en forma de cadena, entre comillas.

El argumento Rotación puede ser uno de estos valores: 90, 180, 270, -90, -180, -270. Son valores de rotación en grados de un círculo. Los valores positivos giran la imagen hacia la derecha. Los negativos la giran hacia la izquierda. Recuerde que puede usar el atributo Exif de Altova OrientationDegree para obtener la rotación actual de la imagen en grados (0, 90, 180, 270) a partir de la etiqueta Exif Orientation de la imagen. Sin embargo, como el atributo OrientationDegree se obtiene de la etiqueta Orientation de los datos Exif, solamente estará disponible si la etiqueta Orientation está presente en los datos Exif (ver descripción de OrientationDegree más abajo).
El argumento Calidad puede tener cualquier valor comprendido entre 0 y 100 y hace referencia a valores de la escala de calidad IJG para comprensión en JPEG. No es un indicador del porcentaje de la calidad. Es una compensación del tamaño del archivo y de la calidad. Para una imagen fuente a todo color, 75 suele ser el valor óptimo. Si no consigue un resultado adecuado con 75, entonces aumente el valor.

 

Nota: si en la imagen original hay datos Exif, el proceso de transformación los eliminará y la imagen transformada no incluirá datos Exif.

 

 

mt-transform-image(Imágenes/Imagen[@id='43'], '50%', 90, 75)
Esta función toma como entrada una imagen almacenada en una cadena codificada en base64 en el nodo descendiente Imágenes/Imagen que tiene un valor @id de 43. La función devuelve una imagen transformada cuyo tamaño se ajustó al 50%, se giró 90 grados hacia la derecha y con un nivel de calidad de 75.
mt-transform-image(Imágenes/Imagen[@id='43'], 400, 90, 75)
Esta función produce el mismo resultado que el ejemplo anterior, excepto que el lado largo tiene un valor dado de 400 píxeles. La relación de aspecto de la imagen original se mantiene.
mt-transform-image(Imágenes/Imagen[@id='43'], (400, 280), image-exif-data($XML1/$XML1/Imágenes/ImagenReferencia)/@OrientationDegree, 75)
Esta función selecciona la misma imagen de los ejemplos anteriores y establece el mismo valor de calidad (75). El tamaño de la imagen se establece en 400x280 píxeles y el valor del argumento Rotación se obtiene del atributo @OrientationDegree de la imagen codificada en base64 del nodo ImagenReferencia.

 

 

El motor XPath/XQuery de Altova genera el atributo personalizado OrientationDegree a partir de la etiqueta de metadatos Exif Orientation.

 

Este atributo transforma el valor entero de la etiqueta Exif Orientation (1, 8, 3 o 6) en el correspondiente valor en grados (0, 90, 180, 270), tal y como describe el diagrama más abajo.

 

Debe tener en cuenta que los valores 2, 4, 5, 7 de Orientation no se pueden traducir. Estas orientaciones se obtienen invirtiendo la imagen 1 en su eje central vertical para obtener la imagen con un valor de 2 e invirtiendo después esta imagen por pasos de 90 grados en el sentido de las agujas del reloj para obtener los valores de 7, 4 y 5, respectivamente.

Click to expand/collapse

 

ImageWidth
ImageLength
BitsPerSample
Compression
PhotometricInterpretation
Orientation
SamplesPerPixel
PlanarConfiguration
YCbCrSubSampling
YCbCrPositioning
XResolution
YResolution
ResolutionUnit
StripOffsets
RowsPerStrip
StripByteCounts
JPEGInterchangeFormat
JPEGInterchangeFormatLength
TransferFunction
WhitePoint
PrimaryChromaticities
YCbCrCoefficients
ReferenceBlackWhite
DateTime
ImageDescription
Make
Model
Software
Artist
Copyright

------------------------------

 

ExifVersion
FlashpixVersion
ColorSpace
ComponentsConfiguration
CompressedBitsPerPixel
PixelXDimension
PixelYDimension
MakerNote
UserComment
RelatedSoundFile
DateTimeOriginal
DateTimeDigitized
SubSecTime
SubSecTimeOriginal
SubSecTimeDigitized
ExposureTime
FNumber
ExposureProgram
SpectralSensitivity
ISOSpeedRatings
OECF
ShutterSpeedValue
ApertureValue
BrightnessValue
ExposureBiasValue
MaxApertureValue
SubjectDistance
MeteringMode
LightSource
Flash
FocalLength
SubjectArea
FlashEnergy
SpatialFrequencyResponse
FocalPlaneXResolution
FocalPlaneYResolution
FocalPlaneResolutionUnit
SubjectLocation
ExposureIndex
SensingMethod
FileSource
SceneType
CFAPattern
CustomRendered
ExposureMode
WhiteBalance
DigitalZoomRatio
FocalLengthIn35mmFilm
SceneCaptureType
GainControl
Contrast
Saturation
Sharpness
DeviceSettingDescription
SubjectDistanceRange
ImageUniqueID

------------------------------

 

GPSVersionID
GPSLatitudeRef
GPSLatitude
GPSLongitudeRef
GPSLongitude
GPSAltitudeRef
GPSAltitude
GPSTimeStamp
GPSSatellites
GPSStatus
GPSMeasureMode
GPSDOP
GPSSpeedRef
GPSSpeed
GPSTrackRef
GPSTrack
GPSImgDirectionRef
GPSImgDirection
GPSMapDatum
GPSDestLatitudeRef
GPSDestLatitude
GPSDestLongitudeRef
GPSDestLongitude
GPSDestBearingRef
GPSDestBearing
GPSDestDistanceRef
GPSDestDistance
GPSProcessingMethod
GPSAreaInformation
GPSDateStamp
GPSDifferential

 

 

Clic para expandir/contraerimage-exif-data [altova:]

image-exif-data(CadenaBinariaBase64 como string) como element?     XP3.1 XQ3.1

Toma una imagen JPEG codificada en base64 como argumento y devuelve un elemento llamado Exif que contiene los metadatos Exif de la imagen. Los metadatos Exif se crean como pares atributo-valor del elemento Exif. El nombre de los atributos son las etiquetas de datos Exif encontradas en la codificación base64. La lista de etiquetas Exif aparece más abajo. Si en lo datos Exif hay etiquetas de terceros, estas etiquetas y sus valores también se devuelven en un par atributo-valor. Además de las etiquetas de metadatos Exif estándar (lista más abajo), también se generan pares atributo-valor de Altova. Estos atributos Exif de Altova también se enumeran más abajo.

 

 

Para acceder a un atributo, utilice la función de esta manera:
image-exif-data(//MisImágenes/Imagen20141130.01)/@GPSLatitude
image-exif-data(//MisImágenes/Imagen20141130.01)/@Geolocation
Para acceder a todos los atributos, utilice la función de esta manera:
image-exif-data(//MisImágenes/Imagen20141130.01)/@*
Para acceder al nombre de todos los atributos, utilice esta expresión:
for $i in image-exif-data(//MisImágenes/Imagen20141130.01)/@* return name($i)
Esto es muy práctico a la hora de averiguar el nombre de los atributos que devuelve la función.

 

 

El motor XPath/XQuery de Altova genera el atributo personalizado Geolocation a partir de las etiquetas de metadatos Exif estándar. Este atributo es una concatenación de cuatro etiquetas Exif (GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef) seguidas de unidades:

 

GPSLatitude

GPSLatitudeRef

GPSLongitude

GPSLongitudeRef

Geolocation

33 51 21.91

S

151 13 11.73

E

33°51'21.91"S 151°13'11.73"E

 

 

El motor XPath/XQuery de Altova genera el atributo personalizado OrientationDegree a partir de la etiqueta de metadatos Exif Orientation.

 

Este atributo transforma el valor entero de la etiqueta Exif Orientation (1, 8, 3 o 6) en el correspondiente valor en grados (0, 90, 180, 270), tal y como describe el diagrama más abajo.

 

Debe tener en cuenta que los valores 2, 4, 5, 7 de Orientation no se pueden traducir. Estas orientaciones se obtienen invirtiendo la imagen 1 en su eje central vertical para obtener la imagen con un valor de 2 e invirtiendo después esta imagen por pasos de 90 grados en el sentido de las agujas del reloj para obtener los valores de 7, 4 y 5, respectivamente.

Click to expand/collapse

 

ImageWidth
ImageLength
BitsPerSample
Compression
PhotometricInterpretation
Orientation
SamplesPerPixel
PlanarConfiguration
YCbCrSubSampling
YCbCrPositioning
XResolution
YResolution
ResolutionUnit
StripOffsets
RowsPerStrip
StripByteCounts
JPEGInterchangeFormat
JPEGInterchangeFormatLength
TransferFunction
WhitePoint
PrimaryChromaticities
YCbCrCoefficients
ReferenceBlackWhite
DateTime
ImageDescription
Make
Model
Software
Artist
Copyright

------------------------------

 

ExifVersion
FlashpixVersion
ColorSpace
ComponentsConfiguration
CompressedBitsPerPixel
PixelXDimension
PixelYDimension
MakerNote
UserComment
RelatedSoundFile
DateTimeOriginal
DateTimeDigitized
SubSecTime
SubSecTimeOriginal
SubSecTimeDigitized
ExposureTime
FNumber
ExposureProgram
SpectralSensitivity
ISOSpeedRatings
OECF
ShutterSpeedValue
ApertureValue
BrightnessValue
ExposureBiasValue
MaxApertureValue
SubjectDistance
MeteringMode
LightSource
Flash
FocalLength
SubjectArea
FlashEnergy
SpatialFrequencyResponse
FocalPlaneXResolution
FocalPlaneYResolution
FocalPlaneResolutionUnit
SubjectLocation
ExposureIndex
SensingMethod
FileSource
SceneType
CFAPattern
CustomRendered
ExposureMode
WhiteBalance
DigitalZoomRatio
FocalLengthIn35mmFilm
SceneCaptureType
GainControl
Contrast
Saturation
Sharpness
DeviceSettingDescription
SubjectDistanceRange
ImageUniqueID

------------------------------

 

GPSVersionID
GPSLatitudeRef
GPSLatitude
GPSLongitudeRef
GPSLongitude
GPSAltitudeRef
GPSAltitude
GPSTimeStamp
GPSSatellites
GPSStatus
GPSMeasureMode
GPSDOP
GPSSpeedRef
GPSSpeed
GPSTrackRef
GPSTrack
GPSImgDirectionRef
GPSImgDirection
GPSMapDatum
GPSDestLatitudeRef
GPSDestLatitude
GPSDestLongitudeRef
GPSDestLongitude
GPSDestBearingRef
GPSDestBearing
GPSDestDistanceRef
GPSDestDistance
GPSProcessingMethod
GPSAreaInformation
GPSDateStamp
GPSDifferential

 

 

[ Subir ]

 


© 2019 Altova GmbH