2017-01-06 6 views
0

J'ai le script suivant nommé wallpaperise.sh qui prend une image et la convertit en la même chose cette fois-ci avec une résolution 16: 9.Le script de réduction d'image crée une image de plus grande taille dans Linux

## Usage: ./wallpaperise.sh <imagename.jpg> 

aw=16 #desired aspect ratio width... 
ah=9 #and height 

in="$1" 
out="wallpaperised_$1" 

wid=`convert "$in" -format "%[w]" info:` 
hei=`convert "$in" -format "%[h]" info:` 

tarar=`echo $aw/$ah | bc -l` 
imgar=`convert "$in" -format "%[fx:w/h]" info:` 

if (($(bc <<< "$tarar > $imgar"))) 
then 
    nhei=`echo $wid/$tarar | bc` 
    convert "$in" -gravity center -crop ${wid}x${nhei}+0+0 "$out" 
elif (($(bc <<< "$tarar < $imgar"))) 
then 
    nwid=`echo $hei*$tarar | bc` 
    convert "$in" -gravity center -crop ${nwid}x${hei}+0+0 "$out" 
else 
    cp "$in" "$out" 
fi 

Le problème est que l'image qu'il crée (même si elle ne change pas l'image du tout) est d'une plus grande taille de fichier que l'original?

Que puis-je faire pour résoudre ce problème?

Répondre

1

Lors de la conversion de JPEG avec la conversion de ImageMagick, vous pouvez choisir votre propre taille de fichier avec -quality 1 (minuscule) à -quality 100 (énorme).

Comme le suggère le nom du drapeau, la taille du fichier est directement liée à la qualité de l'image.

Si vous ne spécifiez pas, ImageMagick's documentation dit qu'il va essayer de deviner le niveau de qualité de l'entrée, ou par défaut à 92 si elle ne peut pas. Dans votre cas, il est prudent de choisir un paramètre de qualité supérieure et résultant en un fichier plus volumineux.

Vous pouvez essayer par exemple. -quality 80, regardez à quoi il ressemble, et augmentez ou diminuez comme bon vous semble.