Attēlu partijas optimizācija un konvertēšana ar ImageMagick

  • ImageMagick, mogrify un convert ļauj terminālī ar lielu elastību mainīt izmērus, konvertēt un optimizēt lielu attēlu apjomu.
  • Papildu rīki, piemēram, cwebp, jpegtran un img2webp, uzlabo saspiešanu un atbalstu moderniem formātiem, piemēram, WebP, lietošanai tīmeklī.
  • Partiju apstrādi var automatizēt ar Shell skriptiem vai integrēt tādās valodās kā PHP, Python vai Node.js.
  • Grafiski risinājumi, piemēram, Converseen, atvieglo ImageMagick izmantošanu masveida konvertēšanai un pārdēvēšanai, neapstrādājot komandas.

Optimizējiet attēlus partijās, izmantojot ImageMagick

Ja ikdienā strādājat ar attēliem, agrāk vai vēlāk jums būs jāsaskaras ar šo baismīgo brīdi: mainīt izmērus, formatēt vai optimizēt simtiem vai tūkstošiem failu vienlaikusDarīt to manuāli ar grafikas redaktoru ir neprātīgi, nemaz nerunājot par milzīgu laika izšķiešanu. Labā ziņa ir tā, ka ar ImageMagick un dažiem saistītiem rīkiem jūs varat automatizēt gandrīz visu procesu no termināļa.

Šajā rakstā mēs apskatīsim, kā izmantot priekšrocības ImageMagick attēlu partijas optimizācijai un konvertēšanaiapvienojot to, ja nepieciešams, ar citiem utilītprogrammām, piemēram, mogrify, cwebp o jpegtranPraktiskus piemērus redzēsiet Linux vidē (bash), taču daudzas komandas ir lieliski pielāgojamas gan Windows, gan macOS.

Kāpēc mums ir jāoptimizē un jākonvertē attēli partijās?

Viena fotoattēla rediģēšana ir ļoti vienkārša: Jebkurš skatītājs vai grafikas redaktors ļauj mainīt izmērus un formātu. ar diviem klikšķiem. Problēma sākas, kad vairs nav tikai viena vai divas fotogrāfijas, bet desmitiem tūkstošu, kas izkaisīti pa mapēm vai milzīgām bibliotēkām.

Iedomājieties tādus gadījumus kā modelēšanas vietne ar vairāk nekā 300 000 JPEG un PNG attēluDaudzi no šiem attēliem ir no 1 līdz 15 MB lieli. Ja liela daļa jūsu auditorijas pieslēdzas vietnei ar pieticīgiem interneta savienojumiem (piemēram, lietotāji Vācijā ar lēnu ADSL), šo attēlu ielāde vietnē kļūst par murgu gan lietotājam, gan serverim.

Ir arī ļoti bieži nepieciešams samazināt fotoattēlu izmērus vienlaikus nosūtīt pa e-pastu, kopīgot, izmantojot Dropbox/Google Drive, vai sagatavot prezentācijas materiālus. Manuāla tā veikšana ir nogurdinoša un neefektīva; saprātīgāk ir automatizēt uzdevumu ar skriptiem un konsoles rīkiem.

Ļaunprātīgs PDF fails
saistīto rakstu:
Kā atklāt ļaunprātīgu PDF failu operētājsistēmā Windows

Vispārīgas opcijas projektiem ar daudziem attēliem

Pirms iedziļināties ImageMagick, ir svarīgi saprast, ka ir vairākas stratēģijas tā apstrādei. milzīgas multivides bibliotēkas, piemēram, ļoti lielas tīmekļa vietnes:

  • Spraudņi vai masveida konvertēšanas rīki CMS ietvaros (piemēram, WordPress spraudņi, kas konvertē uz WebP). Tie var labi darboties vidēja lieluma bibliotēkās, taču ar simtiem tūkstošu attēlu tie bieži vien ir nepietiekami, izraisa noildzi vai pārslogo serveri.
  • Optimizācija CDN slānī (Piemēram, Cloudflare maksas plāns ar optimizāciju/poļu valodu). Šajā gadījumā CDN nodrošina optimizētas versijas (vai WebP), un jums nav atkārtoti jākonvertē visi sākotnējie faili. Tā ir ērta un mērogojama iespēja, lai gan jūs esat atkarīgs no pakalpojumu sniedzēja un nesamazina diska vietu sākotnējā serverī.
  • Sistēmas līmeņa partijas apstrāde Izmantojot ImageMagick, cwebp un citus CLI rīkus. Tas prasa nedaudz vairāk sākotnējā darba (skriptus, testēšanu, dublēšanu), taču tas sniedz pilnīgu kontroli pār formātiem, kvalitātēm, ceļiem un darbplūsmām. Tas ir ideāli piemērots, ja vēlaties sakopt vecu bibliotēku vai sagatavot resursus ļoti specifiskā veidā.

Daudzos lielos projektos labākā pieeja ir apvienot abus: Optimizējiet un konvertējiet vēsturiskos datus partijās, izmantojot ImageMagick un tajā pašā laikā paļaujoties uz CDN lai pulētu un pasniegtu vieglāko iespējamo versiju atbilstoši pārlūkprogrammai.

ImageMagick un saistīto rīku pamata instalēšana

Pirmā lieta, protams, ir tā uzstādīšana ImageMagick un papildu utilītas kuru vēlaties izmantot. Vairumā Linux distribūciju varat vienkārši izmantot pakotņu pārvaldnieku:

  • Debian/Ubuntu (un atvasinājumi):
    sudo apt-get install imagemagick
    vai
    sudo aptitude install imagemagick
  • openSUSE, Fedora utt.: instalē pakotni imagemagick no oficiālajām krātuvēm vai izmantojot jūsu distro grafiskos rīkus.

Operētājsistēmās Windows un macOS instalēšanas programmu var lejupielādēt tieši no vietnes ImageMagick oficiālā tīmekļa vietnekas nodrošina lietošanai gatavus bināros failus. Instalēšanas laikā noteikti atlasiet opciju pievienot bināros failus Sistēmas ceļš lai varētu izmantot magick, convert o mogrify tieši no termināļa.

Ja oficiālās pakotnes rada problēmas (piemēram, kļūdas, konvertējot no XCF Debian/Ubuntu sistēmās ir tādi skripti kā “ImageMagick Easy Install (IMEI)”, kas automātiski lejupielādē, kompilē un instalē jaunāku versiju no pirmkoda.

Dažas universālas lokālās izstrādes vides, piemēram, ServBay, jau iekļauts Iepriekšinstalēti ImageMagick, cwebp, jpegtran, djpeg, cjpeg un img2webp un pievienots PATH, ļaujot izmantot šos rīkus bez papildu konfigurācijas no integrētā termināļa.

ImageMagick galvenās komandas pamata lietošanai

ImageMagick nav viena programma, bet gan komandrindas utilītu kolekcija koncentrējas uz attēlu manipulāciju. Visizplatītākie optimizācijas un konvertēšanas aspekti ir:

  • maģija / konvertēšana: attēlu pārveidošanai (izmēra, formāta maiņai, filtru lietošanai, kompozīcijas veidošanai utt.). Mūsdienu versijās komanda "main" ir magick; convert Parasti tā pastāv kā simboliska saite saderības nodrošināšanai.
  • mogrificēt: līdzīgs convertbet īpaši izstrādāts partijveida apstrāde un sākotnējo failu pārrakstīšana ja vien tu viņam nepateiksi citādi.
  • identificēt: parāda informāciju par attēlu (formātu, izmērus, krāsu dziļumu utt.).

Lai iegūtu ātri fakti No konkrēta attēla, piemēram, logotipa XCF formātā, varat izmantot:

magick identify logo.xcf

Ja vēlaties daudz detalizētāku pārskatu, pievienojiet -daudzpusīgs Un jums būs sadalīti visi svarīgie metadati. Tas ir noderīgi, lai pārliecinātos, ka Konvertēšanas process saglabā vai maina jūsu vēlamo rezultātu..

Mainiet atsevišķu attēlu formātu un izmēru

Attēlu partijveida konvertēšana, izmantojot ImageMagick

Pats pamata uzdevums ir konvertēt no viena formāta uz cituPiemēram, no JPEG uz PNG:

magick convert fotoorigen.jpg fotoresultado.png

ImageMagick nosaka izvades formātu, pamatojoties uz galīgais faila paplašinājumstātad, ja jūs maināties .jpg līdz .png, .webp vai ko vien vēlaties, tas tiek ģenerēts tieši šajā formātā.

magick convert fotoorigen.jpg -resize 800x600 -quality 90 fotoresultado.jpg

Šajā piemērā attēls ir pielāgots 800 × 600 pikseļi un tas ir izveidots JPEG kvalitāte 90%Tas ir ātrs veids, kā samazināt svaru bez ievērojamiem zaudējumiem lielākajā daļā tīmekļa gadījumu.

Jūs varat arī izmantot tikai platums vai tikai augstums (piemēram, -resize 1200x o -resize x800), lai ImageMagick automātiski pielāgotu otru dimensiju, vienlaikus saglabājot proporcijas. Ja izmantojat zīmi ! (piemēram, -resize 800x600!) piespiež precīzi ievērot šos izmērus, lai gan attēls tiks izkropļots, ja malu attiecība nesakritīs.

Strādājot ar GIMP XCF faili ar vairākiem slāņiemJa konvertēsiet tieši uz PNG vai JPG, katram slānim tiks ģenerēts atsevišķs fails. Lai no tā izvairītos un iegūtu vienu, saplacinātu attēlu, pievienojiet opciju -flatten pirms izvades faila.

Mogrify vs Convert: Kad lietot katru no tiem

Ļoti svarīga atšķirība, strādājot partijās, ir izpratne ko tieši dara katra komanda:

  • konvertēt (vai maģiski konvertēt) Tas nolasa ievades attēlu, piemēro transformācijas un ģenerē jauns izvades failsSākotnējais attēls paliek neskarts.
  • mogrificēt Atveriet failu, lietojiet izmaiņas un, ja vien neizmantojat -format o -path, pārraksta sākotnējo failuTas ietaupa vietu diskā, taču izmaiņas ir neatgriezeniskas, ja jums nav dublējuma.

Tipiski zvani varētu:

convert imagenoriginal.png -parametro valor imagendestino.png
mogrify -parametro valor imagenoriginal.png

Piem, ja palaižat:

convert torres.jpg -negate torresnegadas.jpg

tev joprojām būs divi dažādi failioriģinālu un negatīvu. Tomēr, ja jūs to darāt:

mogrify -negate torres.jpg

failu torres.jpg ir modificēts Un nav rezerves kopijas, ja vien to neesat izveidojis iepriekš. Tā ir ideāli piemērota daudzu attēlu tīrīšanai, ja uztraucaties par vietu, taču ir jābūt uzmanīgiem.

Abos gadījumos Argumentu secībai ir nozīme. Ar convert Vispirms norādāt avota attēlu, tad parametrus un visbeidzot galamērķi. Ja avotu un galamērķi apmainīsiet vietām, rīks neizdosies, jo nevarēs atrast failu, kas tam jānolasa. mogrify Parametri atrodas pirms failu nosaukumiem; ja vispirms ierakstīsiet failu un pēc tam opcijas, nekas netiks piemērots.

Audeklu un tekstu veidošana no nulles

Vēl viena būtiska atšķirība ir tā Tikai Convert var izveidot attēlus no nullesAr modifikatoru xc: Varat ģenerēt vienkrāsainu audeklu:

convert -size 500x250 xc:red imagenroja.jpg

Ja mēģini kaut ko līdzīgu darīt ar mogrify Bez iepriekšēja faila tas neizdosies, jo Nav ko modificēt.Tas pats attiecas uz etiķešu vai attēlu ģenerēšanu ar tekstu tieši:

convert -size 500x250 -gravity Center -background blue -font FreeMono-Bold label:"Linux Center" cartela_Linux_Center.jpg

Šī komanda izveido zilu fonu, centrē tekstu, lieto fontu un ģenerē jaunu attēlu. mogrify tev būtu nepieciešams sākot no esoša failaTo nevar izgudrot no zila gaisa.

Partiju apstrāde ar mogrify un čaulas skriptiem

Kad mapē ir simtiem fotoattēlu un mēs vēlamies lietot tā pati konversija automātiskiČaulas skripti tiek izmantoti un mogrify.

#!/bin/bash
mkdir -p convertidas
for img in *.jpeg; do
convert "$img" -resize 800x600 -quality 90 "convertidas/$img"
done

Šīs mini skripta ekskursijas visi attēli ar paplašinājumu .jpeg Pašreizējā mapē lietot izmēru maiņu un atstāt rezultātus konvertēts/Varat to pielāgot, lai mainītu formātu (piemēram, lai izvade būtu .png o .webp), pievienojiet ūdenszīmes vai jebkuru citu filtru, ko atbalsta ImageMagick.

Ja jums ir daudz attēlu vienā formātā un jūs vēlaties pārrakstīt tos vietnē ietaupot vietu, mogrify Tas spīd īpaši spilgti. Tipisks piemērs XCF konvertēšanai uz PNG, izmēru maiņai un rezultāta nosūtīšanai uz citu mapi būtu:

mogrify -resize 128x128 -format png -path "$HOME/imgs_convertidas" $HOME/imgs_originales/*.xcf

mogrify masveida konvertēšanai un standarta parametriem

Pasūtījums mogrificēt Tas ļauj vienlaikus apvienot daudzas transformācijas. Diezgan pilnīgs piemērs visu mapē esošo PDF failu konvertēšanai uz JPG, to izmēru maiņai, kvalitātes pielāgošanai un pagriešanai būtu:

mogrify -format jpg -density 300 -quality 80 -resize 1280x1024 -rotate -90 *.pdf

Daži no visbiežāk izmantotajiem parametriem Optimizācijas un konversijas kontekstā tie ir:

  • -formāts: izvades attēla formāts (jpg, png, webp utt.).
  • -blīvums: izšķirtspēja dpi (150, 300, 600…), noderīga, konvertējot PDF vai citus vektoru formātus uz bitkarti.
  • KvalitātesSaspiešanas kvalitāte zudumradošiem formātiem (īpaši JPEG un WebP). 80 parasti ir labs līdzsvars tīmekļa failiem.
  • -izmērsgalīgie izmēri, iespēja norādīt tikai platumu, tikai augstumu vai abus.
  • -rotēt: rotācija grādos (pozitīva pulksteņrādītāja virzienā, negatīva pretēji pulksteņrādītāja virzienam).

Paturiet prātā, ka dažās distribūcijās (piemēram, Ubuntu/Debian ar ImageMagick 7) tās ir izveidotas drošības politikas, kas pēc noklusējuma atspējo noteiktus sensitīvus formātus, piemēram, PDF. Ja, izmantojot mogrify PDF failos rodas atļauju kļūda; failu var rediģēt. /etc/ImageMagick-7/policy.xml ar administratora privilēģijām un mainiet rindu:

Ja, lietojot mogrify par PDF failiem, kurus redzat atļauju kļūda, varat rediģēt failu /etc/ImageMagick-7/policy.xml ar administratora privilēģijām un mainiet rindu:

<policy domain="coder" rights="none" pattern="PDF" />

kaut kam līdzīgam:

<policy domain="coder" rights="read | write" pattern="PDF" />

drošības atvieglojumi Jums vajadzētu izvērtēt, vai tas jums ir tā vērts vai nē; no purista viedokļa tas paver nelielu robu, bet daudzās kontrolētās vidēs tas ir pieņemami.

Konvertēšana un optimizācija uz moderniem formātiem (WebP, optimizēts JPEG)

Papildus ImageMagick ir arī īpaši rīki, kas ir ļoti noderīgi optimizējiet izmēru, nezaudējot pārāk daudz kvalitātesit īpaši, ja jūsu mērķis ir tīmeklis.

Konvertēšana uz WebP, izmantojot cwebp un img2webp

WebP Tas ir mūsdienīgs formāts, ko izveidojis Google un kas piedāvā saspiešanas ziņā labāka nekā JPEG un PNG Daudzos gadījumos gan ar, gan bez zaudējumiem. Peļņa cwebp To izmanto, lai komandrindā konvertētu esošos attēlus (JPEG, PNG…) uz WebP:

  • JPEG faila konvertēšana uz WebP ar 80 kvalitāti:
    cwebp -q 80 input.jpg -o output.webp
  • PNG konvertēšana uz WebP, saglabājot caurspīdīgumu:
    cwebp -q 80 input.png -o output.webp

Lai apstrādātu partijveidā (piemēram, visus attēlus, kas sākas ar apkalpošanas nodalījums), varat izmantot nelielu ciklu programmā Shell:

for file in servbay*.{jpg,png}; do
cwebp -q 45 "$file" -o "${file%.*}.webp"
done

Sintakse ${fails%.*} Tas ir Shell parametra paplašinājums, kas noņem sākotnējo paplašinājumu un pēc tam pievieno .webp.

Ja tas, ko vēlaties, ir Izveidojiet animētu WebP (kaut kas līdzīgs animētam GIF, bet efektīvāks), varat izvilkt no img2webp:

img2webp -loop 0 -d 100 frame1.png frame2.png frame3.png -o output.webp

Šajā piemērā vairāki attēli ir apvienoti vienā animētā failā ar 100 ms aizkave starp kadriem un bezgalīgu ciklu.

JPEG bezzudumu optimizācija ar jpegtran, djpeg un cjpeg

JPEG formātam ir vairākas klasiskas utilītas, kas ir ļoti noderīgas, ja vēlaties to darīt bezzudumu optimizācija vai ļoti precīza kontrole:

  • jpegtranTas pagriež, apgriež, pārkārto un optimizē JPEG failus bez atkārtotas saspiešanas (bezzudumu darbības). Tas arī ļauj ģenerēt progresīvus JPEG failus un attīrīt nevajadzīgos metadatus.
  • djpeg: dekodē JPEG nesaspiestos starpposma formātos (piemēram, PPM), kas ir noderīgi zema līmeņa darbplūsmās.
  • cjpeg: veic pretēju procesu, saspiežot neapstrādātus attēlus JPEG formātā ar atšķirīgiem kvalitātes parametriem.
Kas ir AVIF attēli?
saistīto rakstu:
AVIF: Viss par jauno attēla formātu, kas rada apvērsumu tīmeklī

Tipisks lietojums jpegtran, lai optimizētu JPEG failus bez zaudējumiem un padarot tos progresīvus, būtu:

jpegtran -optimize -progressive -copy none input.jpg > output.jpg

Šeit mēs noņemam metadatus (EXIF, komentārus utt.), uzlabojam iekšējo organizāciju un konvertējam uz progresīvo formātu, kas parasti nodrošina labāku slodzes uztveri tīmeklī, kad attēls tiek parādīts detaļu "slāņos".

Pakešu attēlu apstrāde ar grafisko saskarni: Converseen

Ja terminālis nav jūsu gaumē, bet jūs joprojām vēlaties izmantot ImageMagick iespējas, ir pieejami tādi rīki kā Apskatīts, kas piedāvā vairāku platformu grafisko saskarni (Windows un Linux) masveida konvertēšanas pārvaldībai.

Converseen iekšēji ir balstīts uz ImageMagick bibliotēku, un ļauj vienā rāvienā:

  • Konvertēt starp formātiem (JPG, PNG, TIF un daudzi citi, piemēram, DPX, EXR, GIF, SVG, PhotoCD, PostScript…).
  • Mainīt izmēru, pagriezt un apgriezt partijas attēli.
  • Saspiest attēlus tīmekļa vajadzībām vai dokumentiem, kontrolējot kvalitāti un izmēru.
  • Pārdēvēt failu grupas ar prefiksiem, sufiksiem vai progresīviem skaitļiem.
  • Pārveidot pilnu PDF failu daudzos attēlospa vienam katrā lapā.

To var viegli uzstādīt no daudzu distribūciju krātuvēm (converseenun openSUSE vidē converseen-lang (valodai) vai lejupielādējot izpildāmo/portatīvo versiju operētājsistēmā Windows.

Converseen saskarne ir sakārtota vairākos paneļos: darbības panelis (priekšskatījums, izmēri, rotācija un izvades opcijas), centrālā zona, kurā redzami apstrādājamie faili, un apakšējais panelis kur jūs izvēlaties izvades formātu, īpašas preferences (JPG/PNG saspiešana, caurspīdīga fona krāsa utt.).

Starp tās praktiskākajām funkcijām ir šādas: masveida un slavensPiemēram, varat atlasīt "Mērogot attēlu", saglabāt malu attiecību, iestatīt platumu vai samazināšanas procentuālo daļu un izvēlēties, vai saglabāt sākotnējo formātu vai konvertēt to uz citu. Pārdēvēšanai ir vairākas iespējas. Prefikss/Sufikss (ievietojiet virknes ap sākotnējo nosaukumu) un Progresīvais skaitlis (pievienot secīgu numerāciju).

Tas arī ļauj pagriezt attēlus par 90°, 180° vai apgriezt tos horizontāli/vertikāli, un tam ir īpaša darbplūsma PDF faila konvertēšanai uz attēlu kopu: jūs importējat PDF failu, atlasāt lapas, kuras jūs interesē, izvēlaties izmērus, formātu, pakāpenisku pārdēvēšanu un, ja nepieciešams, Caurspīdīgu fonu aizstājat ar noteiktu krāsu. (piemēram, balts).

Tipiski praktiski gadījumi ar ImageMagick

Izmantojot visu iepriekš minēto, tagad varat iestatīt plašu darbplūsmu klāstu. Daži izplatīti piemēri Partijas optimizācija un konvertēšana ar ImageMagick varētu:

  • Masveida izmēru maiņa Blogam vai galerijai: izmantojiet bash skriptu, kas atkārtoti apstrādā visus lielos fotoattēlus, samazina tos līdz maksimālajam platumam (piemēram, 1200 pikseļi) un saglabā mapē “tīmeklis”.
  • Lejupielādējiet attēlus no URL, mērogojiet un optimizējiet vienā komandā:
    convert https://blogandweb.com/INPUT_IMAGE.jpg -resize 1200x -quality 60 -strip OUTPUT_IMAGE.jpg
  • Pievienot logotipus vai ūdenszīmes automātiski lietot visus kampaņas attēlus, izmantojot kombinācijas -gravity, -geometry y -composite cilpas ietvaros.
  • Noņemiet apmales no attēlu kopas ar -shave 10x10, ideāli piemērots skenētām fotogrāfijām ar nevēlamiem rāmjiem.
  • Apvienojiet vairākus attēlus montāžā horizontāli ar +append, noderīgi pirms/pēc salīdzinājumiem vai kadru joslām.
  • Animētu GIF ģenerēšana no JPG/PNG failu secības ar -delay y -loop.

Visu šo potenciālu var izmantot arī citās valodās, piemēram, PHP, Python vai Node.js komandu izsaukšana, izmantojot exec(), subprocess o child_processTas padara attēlu optimizācijas integrēšanu augšupielādes darbplūsmā vai aizmugursistēmas apstrādē diezgan vienkāršu.

Kā atgūt trūkstošos fotoattēlus no mobilās galerijas
saistīto rakstu:
Kā atgūt trūkstošos fotoattēlus no mobilās galerijas: pilnīga rokasgrāmata

AttēluMaģijas meistars, mogrify un papildinoši rīki, piemēram, cwebp vai jpegtran Tas ļauj pārliecinoši tikt galā ar milzīgām attēlu bibliotēkām, samazināt vietņu ielādes laiku, ietaupīt vietu diskā un automatizēt uzdevumus, kurus manuāli nebūtu iespējams pārvaldīt. Kad esat pieradis rakstīt trīs vai četras pārdomātas komandas vai īsu skriptu, tūkstošiem fotoattēlu izmēra, formāta un kvalitātes maiņa vairs nav apgrūtinājums un kļūst par dabisku jūsu darbplūsmas sastāvdaļu. Kopīgojiet šo informāciju, un vairāk lietotāju uzzinās par šo rīku..