2012-09-14 28 views
17

Estaba siguiendo este ejemplo http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick, y es exactamente lo que quiero hacer con la imagen, con la excepción de tener las sobras de fondo (es decir, los bordes blancos). ¿Hay alguna manera de hacer esto y posiblemente recortar el fondo blanco? Hay otra manera de hacer esto? El tamaño debe ser proporcional, por lo que no solo quiero establecer un límite de tamaño de ancho o un límite de altura, sino que proporcionalmente volver a clasificar según el tamaño la imagen.ImageMagick: Cómo cambiar el tamaño proporcionalmente con mogrify sin fondo

Respuesta

25

El ejemplo se vincula a los usos de este comando:

mogrify    \ 
    -resize 80x80  \ 
    -background white \ 
    -gravity center \ 
    -extent 80x80  \ 
    -format jpg  \ 
    -quality 75  \ 
    -path thumbs  \ 
    *.jpg 

En primer lugar, mogrify es un poco peligroso. Manipula sus originales en línea y sobrescribe los originales. Si algo sale mal, has perdido tus originales y te has quedado con los resultados equivocados. En su caso, el -path thumbs embargo alivia este peligro, porque se asegura los resultados se escriben en subdirectorio pulgares

Otro comando ImageMagick, convert, puede mantener los originales y hacer lo mismo manipulación como mogrify:

convert    \ 
    input.jpg  \ 
    -resize 80x80  \ 
    -background white \ 
    -gravity center \ 
    -extent 80x80  \ 
    -quality 75  \ 
    thumbs/output.jpg 

Si quieren el mismo resultado , pero no las extensiones de lona blanca (originalmente añadidos para que la imagen de un cuadrado de 80x80 resultado), acaba de salir de la distancia -extent 80x80 parámetro (el -background white y un gravity center volver superflua también):

convert    \ 
    input.jpg  \ 
    -resize 80x80  \ 
    -quality 75  \ 
    thumbs/output.jpg 

o

mogrify    \ 
    -resize 80x80  \ 
    -format jpg  \ 
    -quality 75  \ 
    -path thumbs  \ 
    *.jpg 
+0

Gracias, Kurt, abordaré el tema de la mogrify. No estaba muy seguro de cuál era la diferencia entre él y convertir, pero en realidad establecí el camino por si acaso. Ciertamente no quería sobrescribir los archivos de imagen maestra. – cj5

6

Sé que esto es un hilo viejo, pero mediante el uso de la bandera -Escribir con la bandera -set, uno puede escribir en archivos en el mismo directorio sin sobrescribir los archivos originales:

mogrify -resize 80x80 \ 
-set filename:name "%t_small.%e" \ 
-write "%[filename:name]" \ 
*.jpg 

Como se señaló al http://imagemagick.org/script/escape.php,% t es el nombre del archivo sin la extensión y% e es la extensión. Entonces la salida de image.jpg sería una miniatura image_small.jpg.

6

Este es el comando que uso cada vez que quiero cambiar el tamaño de lote a 1920x y mantener la relación de aspecto.

mogrify -path. -resize 1920x1920 -format "_resized.jpg" -quality 70 * .jpg

+1

En realidad '-resize 1920x1920' mantiene la relación de aspecto, lo que resulta en' max (ancho, alto) 'igual a 1920. –

Cuestiones relacionadas