Obrázok zmenšiť reč localhost
127.0.0.1

Tu som našiel skript pre imagemagick, ktorý zmenšuje veľkosť obrázka, až kým nemá určitú veľkosť v kB. Väčšinou však nepotrebujem nijaké úpravy veľkosti, iba „redukciu hmotnosti“ s obrázkami, ktoré už boli veľkosťou upravené.
Skript na zmenu veľkosti jedného súboru bez manipulácie s dimenziami môže vyzerať takto:
#!/bin/bash
ak [$ # -ne 2]
potom
echo -e "\ nusage: $ 0 \ n"
východ
fi
IMAGE_FORMAT = jpg
FILE_SIZE_LIMIT = $ 1
IMAGE_IN = 2 doláre
BASENAME = `echo $ | cut -d ‘.‘ -f-1 `
IMAGE_OUT = $. Menšie.jpg
FILE_SIZE = `ls -sk $ IMAGE_IN | cut -d „‚ -f1`
ak [$ FILE_SIZE -ge $ FILE_SIZE_LIMIT]
potom
echo "zníženie $ IMAGE_IN z: $ FILE_SIZE kB na $ 1 KB"
SIZE = `identifikovať $ IMAGE_IN | cut -d ‘‚ -f7`
S = `echo $ SIZE`
echo "SIZE: $"
QUAL = 100
zatiaľ čo [$ FILE_SIZE -ge $ FILE_SIZE_LIMIT]
robiť
nech QUAL = QUAL-1
echo "Aktuálna kvalita: $"
previesť $ IMAGE_IN -kvalitu $ $ IMAGE_OUT
FILE_SIZE = `ls -sk $ IMAGE_OUT | cut -d „‚ -f1`
echo "Aktuálna veľkosť súboru: $ FILE_SIZE kB"
hotový
mv $ IMAGE_OUT $. $. $
fi
Vložte vyššie uvedený útržok kódu do textového súboru pre vlastné experimenty a úpravy (nazvime to filesize.sh) a urobte ho spustiteľným.
potom urobí bild.jpg 100 kB a uloží výsledok do súboru
Často musíte upravovať celé priečinky - čo je možné vykonať aj pomocou vyššie uvedeného skriptu:
nájsť/cesta/do/priečinok -iname "* .jpg" -exec veľkosť súboru.sh 100 <> \;
Zvyčajne sa aplikuje príliš husto, pretože bez skriptu sa to dá urobiť takto:
pre i v `ls * .jpg`; urobte prevod -kvalita 80 $ i conv_ $ i; hotový
Potom sa pozrite na výsledok
a píše, ak by sa to nezmestilo, daj po-prvom použití nižšie číslo za -kvalitu
odstránil. Kým sa to nezmestí. Rýchlo a špinavo.
Po jednom zadaní riadkov sa tieto nachádzajú v histórii Bash a dajú sa rýchlo vyvolať pomocou kurzorových klávesov nahor alebo vyhľadať a nájsť dni neskôr pomocou [Ctrl] [R].