
Quiero agregar a mis imágenes en Imagemagick:
- borde de color blanco
- 2 pulgadas de ancho
¿Cómo puedo hacerlo?
Respuesta1
convert -bordercolor white -border 20 input.jpg output.jpg
agregará un borde blanco de 20 píxeles de tamaño a la imagen. Sólo necesitas saber cuántos px son una pulgada (ppp) de imagen.
Se pueden encontrar más ejemplos.aquí.
En el caso de mi imagen de prueba, tenía información de ppp guardada. Podría usarlo identivy -verbose
y se ve así:
$ identify -verbose tiger.jpg
Image: tiger.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 600x400+0+0
Resolution: 96x96
Print size: 6.25x4.16667
Units: PixelsPerInch
Type: TrueColor
...
Como puedes ver, tiene 96x96 ppp ya que las unidades son del tipo PixelsPerInch.
En ese caso, 2 pulgadas en mi imagen son 192px.
Respuesta2
Primero, averigüe cuántos píxeles tendrá el borde de 2". Agregue estos píxeles a los #píxeles de su imagen original (dos veces, ya que desea el mismo borde en cada lado).
Ahora usa convertir como
convert <input> -size <newsize> xc:white +swap -gravity center -composite <output>
Digamos que el tamaño de la imagen es 3600x2400 y la resolución es 100px/pulg. Por lo tanto, debe agregar 400 px a cada dimensión, obteniendo como resultado 4000x2800. (@V-master ha descrito cómo averiguar estos valores). Luego el comando dice (dondeentrada.jpges el original ysalida.jpges el resultado)
convert input.jpg -size 4000x2800 xc:white +swap -gravity center -composite output.jpg
Para mí esto funcionó según lo solicitado.
Editar:
convert input.jpg -bordercolor white -border <n> output.jpg
(como ya lo sugirió @V.master) también funciona, solo -bordercolor
se debe definir la opción antes -border
. Es un atajo para mi sugerencia, que uso para tener bordes de diferentes tamaños (rsp. relación de aspecto fija independiente de la de la imagen original).
No hay opción para configurar la unidad en pulgadas. Lo que son 2" depende de la resolución de salida de la imagen cuando se imprime (por ejemplo, 300 ppp: n=600, 600 ppp: n=1200, etc.).
Para aquellos que se preguntan: la xc
no opción significaColor de la ventana Xy establece ellienzocolor. En versiones más recientes de ImageMagick, canvas
se agregó el alias para mayor claridad.
Respuesta3
Mientras trabajo en la documentación, tengo que actualizar las imágenes y agregar marcos nuevamente.
El siguiente script facilita la adición de marcos:
#!/bin/bash -e
if [ -z "$1" ]; then
echo "Usage: $0 file"
exit 1
fi
file="$1"
if [[ "$file" == *"-original"* ]]; then
original=$file
file=${file//-original/}
else
extension=${file##*.}
original="${file%.$extension}-original.$extension"
fi
if [ ! -e "$original" ]; then
mv "$file" "$original"
fi
convert -bordercolor white -border 2 "$original" "$file"
Por ejemplo, tenemos un archivo myimage.png
sin marco. El siguiente comando:
$ ./add_frame.sh myimage.png
Para archivo myimage.png
:
- crea
myimage-original.png
con contenido actual (sin marco) - agrega marco a
myimage.png
Para las próximas carreras:
$ ./add_frame.sh myimage.png # you may use current name
$ ./add_frame.sh myimage-original.png # or with original suffix, result is the same
- Se copia
myimage-original.png
→myimage.png
- Agregar marco a
myimage.png
Por lo tanto, simplemente actualizo myimage-original.png
y agrego un marco mediante un script.