Los escritores no solo trabajan con palabras, a menudo tienen que trabajar con imágenes. La escritura técnica implica presentar muchas capturas de pantalla para transmitir la tecnología y los procesos. Las diferentes plataformas de publicación pueden tener varios requisitos para las imágenes, como el formato de la imagen o el tamaño del archivo.
Como consultor de TI e ingeniero de sistemas, he escrito mucha documentación técnica como entregas a clientes, generalmente con Microsoft Word (.doc) como formato requerido. Cualquier documento puede crecer rápidamente a medida que se agrega contenido. Al principio, las capturas de pantalla solían ser mapas de bits (.bmp), que pueden tener un tamaño de archivo muy grande. Un documento que describa la instalación de un sistema operativo en un servidor podría terminar siendo un archivo muy grande.
Reducir el tamaño de las imágenes sin hacerlas ilegibles fue un ejercicio laborioso. Los mapas de bits se pueden convertir a archivos jpeg y posteriormente a archivos png. La edición siguió siendo un desafío incluso más tarde, cuando cambié mi paquete de oficina a LibreOffice. Afortunadamente, la mayoría de las herramientas de captura de pantalla actuales se guardan en formatos más pequeños, como png.
Opensource.com pone ciertos límites a las imágenes que se utilizan en sus artículos. Desarrollé un método rápido de tres pasos para preparar imágenes para mis artículos. El primer paso es ser inteligente con la puesta en escena, como cambiar el tamaño de una ventana o cambiar una fuente. Dos pasos adicionales se volvieron muy repetitivos. Son para garantizar que la imagen no supere el límite de ancho de 600 píxeles y para aplicar un borde.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
La secuencia de comandos prepimg.sh
Escribí un script Bash llamado prepimg.sh
para manejar estas tareas. Este script utiliza dos herramientas de la suite ImageMagick.
Cambiar el tamaño de la imagen
La utilidad de captura de pantalla guarda la imagen en Pictures
directorio con un nombre genérico, algo así como Screenshot-20210923222312.png
. Mi prepimg.sh
El script verifica el ancho de píxeles de los archivos en este directorio y cambia el tamaño de cualquiera que exceda el límite. Este paso utiliza el identificar programa de la suite ImageMagick para determinar el ancho (%w).
$ identify -format %w Screenshot-20210903202655.png
1217
El valor de ancho se asigna a la variable W
para usar como comparador hasta el límite de 600. El límite en sí es configurable a través de la variable $MAXWIDTH
. Si se determina que el ancho excede MAXWIDTH, entonces otro programa ImageMagick llamado convert se llama para reducir el ancho de la imagen. Aquí está la función de procesamiento de imágenes de mi script:
if [ "$W" -gt "$MAXWIDTH" ]
then
[[ $VERBOSE -gt 0 ]] && echo "${1} is ${W} - reducing"
convert -resize "${MAXWIDTH}" \
"${SCREENSHOTS}"/"${1}" \
"${READY}"/"${1}"
...
La imagen se reduce de tamaño según sea necesario y se guarda en un directorio diferente definido por $READY
variable. En este caso, la imagen se redimensiona un poco más pequeña (598 píxeles) para dejar espacio para agregar un borde, que muestro a continuación.
Añadir un borde a la imagen
A veces puede parecer que una imagen se mezcla con el fondo de la página web. Esto se debe a que el color de primer plano de la imagen hasta el borde es el mismo color que el fondo del sitio. Aquí hay un ejemplo:
Como puede ver en la imagen de arriba, es imposible saber dónde está el borde de la imagen. Este problema no se limita al color blanco. Depende de cada sitio individual y de los colores del tema que utilice. Entonces, si el fondo es rojo y el borde de la imagen también es rojo, ocurre el mismo problema. Mi secuencia de comandos resuelve esto usando convertir herramienta. El -borde La opción agrega un borde a cada archivo de imagen con un tamaño de 1 píxel. Esta opción por sí sola sería suficiente, pero también quiero establecer el color usando -bordercolor opción. Aquí hay un ejemplo:
convert -bordercolor black -border 1 Screenshot-20210903202655.png
A continuación se muestra la misma imagen con un borde. ¿No se ve mejor?
Tu imagen está lista
Uso un for
loop para iterar a través del directorio de capturas de pantalla. Llama a la función process_img
para cada archivo. La función maneja tanto el ancho como el borde. El código completo realiza algunas comprobaciones de cordura, como garantizar que el archivo sea realmente una imagen.
process_img() {
# verify that file is an image file, and then get dimensions
if file "${SCREENSHOTS}"/"${1}" | grep -qE 'image|bitmap'; then
[[ $VERBOSE -gt 0 ]] && echo "${1} is an image"
W=$(identify -format %w "${SCREENSHOTS}"/"${1}")
else
echo "File ${SCREENSHOTS}/${1} is not an image."
W=0
fi
# resize and border
if [ "$W" -gt "$MAXWIDTH" ]
then
[[ $VERBOSE -gt 0 ]] && echo "${1} is ${W} - reducing"
convert -resize "${MAXWIDTH}" \
-bordercolor $BORDER \
-border 1 \
"${SCREENSHOTS}"/"${1}" \
"${READY}"/"${1}"
else
convert -bordercolor $BORDER \
-border 1 \
"${SCREENSHOTS}"/"${1}" \
"${READY}"/"${1}"
fi
}
El paso final del script es guardar los archivos procesados en un subdirectorio llamado Ready
, que está determinado por la variable denominada $READY
. Esto conserva los archivos originales para su uso posterior.
Uso
Prepimg.sh
incluye la función de ayuda esperada que describe sus argumentos y su uso:
$ prepimg.sh -h
prepimg.sh Version 0.7 - written by Alan Formy-Duval
prepimg.sh [OPTIONS]
--verbose, -v Be verbose
--directory, -d Screenshot directory (default: /home/alan/Pictures/Screenshots)
--ready, -r Ready directory (default: /home/alan/Pictures/Screenshots/Ready)
--border, -b Border color (default: black)
Código y conclusión
El código presentado en el artículo está incompleto y debe considerarse pseudocódigo. Puede ver el script completo en mi repositorio de Git.
La suite ImageMagick es un poderoso conjunto de herramientas para manipular imágenes. Puedes hacer muchas más cosas además de las funciones incorporadas en mi pequeño script. El corresponsal Jim Hall también escribió recientemente sobre su uso para cambiar el tamaño de una imagen.
Ya sea que prefiera secuencias de comandos Bash o codificación en otro lenguaje como C o Python, la automatización es de gran ayuda. Una y otra vez, he visto cómo un poco de código puede reducir tantos dolores de cabeza y permitirnos hacer un mejor uso de nuestro tiempo.