Masveida bilžu samazināšana ar ImageMagick
Jun 03, 2007
Manis sabildētās bildes visas stāv drošībā diskos plauktā. Un vēl tās visas stāv arī datorā. Visas visas. Ir jauki, ja visām bildēm var tikt klāt ātri bez rakāšanas pa diskiem. Var kādam parādīt, vai pats paskatīt, gremdēties atmiņās un tā. Cietie diski mūsdienās lieli un raizēm par bilžu patērēto diska vietu nevajadzētu būt. Vakardien gadījās, ka diska home
sadaļa piegāja pilna un es sadomāju izmēģināt diska izmantošanas analizatoru. Tas ietilpst Gnome komplektā sākot no 2.18 versijas.
Apskatījos, un izrādījās, ka bildes aizņem 40GB, no kuriem 24GB ir 2006. gada bildes. Liela daļa no tām 8 megapikseļu izšķirtspējā, vairāku megabaitu izmērā. Un tad es domāju, tās bildes šeit ir tikai skatīšanai. Oriģināli, ja nu savajadzētos, uz diskiem ir. Varētu visas samazināt uz 1600 pikseļiem pa garāko malu – apmēram 2 megapikseļi. Skatīšanai pietiktu.
Domāts – darīts. Attēlu konvertēšanai izmantoju lielisko ImageMagick komandrindas attēlu apstrādes rīku paketi. Lūk, šāda komanda:
convert bilde.jpg -resize '1600x1600 >' bilde.jpg
Paņem bilde.jpg un samazina to tā, lai garākā mala ir 1600 pikseļi, bet tiktu saglabāta malu garumu attiecība. Ja garākā mala ir īsāka par 1600 pikseļiem, bildi neaiztiek. Samazināto ieraksta tajā pašā failā. Šo komandu vajadzētu izpildīt visām bildēm manas bilžu mapes visās mapēs un apakšmapēs. Šeit talkā nāk find
komanda. Man tur varētu būt gan .jpg
, gan .JPG
faili. Dažos failu nosaukumos varētu būt tukšumzīmes (piem. Picture 001.jpg
). Nedaudz paeksperimentējot, find
ar visu labi tiek galā. Maģiskā komanda:
find . -iname "*.jpg" -exec convert -verbose '{}' -resize '1600x1600 >' '{}' \;
Izpildot šo komandu mapē ar bildēm, visas bildes tiks samazinātas! Es gan par to komandu galvu ķīlā nelieku. Ja uz tavas sistēmas find
vai convert
strādā kaut kā citādāk un visas bildes, teiksim, izdzēš, nu, tā var gadīties. Drošāk sākumā izmēģināt ar kādu testa partiju. 2006. gada bildes, 24 gigabaitus samazināja visu nakti, 8 stundas. Rezultāts:
Atgūti trīspadsmit gigabaiti! Laikam pēc noklusējuma lieto diezgan augstu to jpeg kvalitātes koeficientu. Ja to pagrieztu zemāk, droši vien iegūtu vēl krietni vairāk! Nav diezcik lietotājam draudzīgs risinājums, bet, toties, ir hakerim draudzīgs risinājums!