Obrázok zmenšiť reč localhost

127.0.0.1

localhost

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].