Macros/Impress/003/es
TDF LibreOffice Document Liberation Project Blogs comunitarios Weblate Nextcloud Redmine Ask LibreOffice Donar
Descripción
Esta macro le permite automatizar el recorte de imágenes de manera personalizada. Para ese fin, entre otras cosas utiliza com.sun.star.text.GraphicCrop.[1] Tenga en cuenta que simplemente cambiar el .GraphicCrop
de una imagen no se ejecuta de manera perfecta, por lo que la macro a continuación ajusta la posición y el tamaño de la imagen para que sea estática y no se comprima o estire. La macro también está diseñada para tener en cuenta los valores de recorte aplicados previamente a la imagen, con lo que puede ejecutar la macro varias veces en la misma imagen.
Tenga en cuenta que una característica principal faltante de esta macro es que la imagen debe estar en su tamaño original para evitar la compresión/estiramiento de la imagen, tras la ejecución de la macro. (Si encuentra una solución que permita cambiar el tamaño, no dude en editar esta página wiki. ) Tenga en cuenta también que si pega una imagen de mayor tamaño en píxeles que el cuadro porta-objetos en sí, se comprimirá automáticamente, lo que causaría estiramiento de la imagen al ejecutar la macro.
Code
LibreOffice Basic
'Option Explicit
Sub custom_crop()
'''Aplicar un recorte personalizado a la imagen seleccionada'''
Dim oGC As New com.sun.star.text.GraphicCrop
Dim oPos As New com.sun.star.awt.Point
Dim oSize As New com.sun.star.awt.Size
oImage = ThisComponent.CurrentSelection(0)
x = oImage.getPosition().X
y = oImage.getPosition().Y
w = oImage.getSize().Width
h = oImage.getSize().Height
' Especificar los parámetros de recorte
leftCrop = 3000
rightCrop = 0
topCrop = 0
bottomCrop = 0
' Aplicar el recorte teniendo encuenta los valores de recorte previos
oGC.Left = leftCrop + oImage.GraphicCrop.Left
oGC.Right = rightCrop + oImage.GraphicCrop.Right
oGC.Top = topCrop + oImage.GraphicCrop.Top
oGC.Bottom = bottomCrop + oImage.GraphicCrop.Bottom
oImage.GraphicCrop = oGC
' Ajustar la posición y tamaño de la imagen para que no se comprima o expanda en el proceso de recorte.
' Tenga en cuenta que la imagen debe tener su tamaño original para esta tarea
oPos.X = x + leftCrop
oPos.Y = y + topCrop
oSize.Width = w - leftCrop - rightCrop
oSize.Height = h - topCrop - bottomCrop
oImage.setPosition(oPos)
oImage.setSize(oSize)
End Sub ' custom_crop()
Python
- pendiente
Descarga del archivo ODP
Notas
- ↑ Consulte la documentación de la API sobre API documentation com.sun.star.text.GraphicCrop.