Escaneé un par de páginas y las edité un poco para que se vean ordenadas. Pero como quería reimprimirlas, noté que recorté el borde de estas imágenes para que la impresora no imprimiera todo el contenido.
Estoy en Linux y tengo una impresora Brother que tiene controladores de Linux, pero de alguna manera la opción de escalado no funciona. Así que pensé en escalar el PDF (en el que he convertido estos escaneos), pero el controlador de la impresora los reduce para que se ajusten a la página. (Si desactivo la opción de escalar para ajustar, se convierte en basura)
Entonces pensé que podría hacer un script-fu para cambiar el tamaño de estas imágenes con un par de líneas y agregar algo de relleno para la impresora. Pero no tengo ni idea de cómo hacer esto.
Aquí está mi primer intento:
(define (resize-image filename-in filename-out )
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
(drawable (car (gimp-image-active-drawable image)))
)
(gimp-image-resize image 2728 3819 124 173)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename-out "")
)
)
Esto no funciona. La imagen simplemente permanece sin cambios.
Mi página es A4 con 2480x3472, así que pensé en agregar un 10 % al ancho para que se convierta en 2728x3819 y establecí el desplazamiento en un 5 % para que el contenido esté centrado (con valores de desplazamiento 124 y 173).
¿Cómo hago esto correctamente? ¿Es GIMP un buen método? ¿Hay herramientas de Linux que podrían hacer esto mejor?
Originalmente pregunté esto en StackOverflow y alguien allí me ayudó .
Déjame compartir contigo:
Esto funcionó para mí:
(define (resize-image filename-in filename-out )
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
(drawable (car (gimp-image-active-drawable image)))
)
(gimp-image-resize image 2728 3819 124 173)
(let* ((layer (car (gimp-layer-new image 2728 3819 0 "Base" 100 0)))
)
(gimp-image-insert-layer image layer 0 1)
(gimp-drawable-fill layer 2)
(let* ((newlayer (car (gimp-image-flatten image)))
)
(gimp-file-save RUN-NONINTERACTIVE image newlayer filename-out "")
)
)
)
)
gimp-file-save
guarda una capa (en el código original, esta capa permanece sin cambios cuando el canavs cambia de tamaño gimp-image-resize
). Entonces, el código anterior cambia el tamaño del lienzo, agrega una capa en la parte inferior, la llena de blanco y fusiona la capa original en ella. Así que ahora tenemos una capa que tiene el nuevo tamaño y el contenido original.
billy kerr
Martín B.