Jei kasdien dirbate su vaizdais ir norite automatizuoti užduotis, „ImageMagick“ yra vienas iš tų esminių įrankių, kuriuos verta įvaldyti. Nors iš pradžių tai gali atrodyti šiek tiek bauginančiai (ypač dėl komandinės eilutės veikimo principo), kai suprasite, kaip tai veikia su paketiniais failais, ji taps tikru Šveicarijos armijos peiliu didelio masto vaizdų apdorojimui.
Šiame straipsnyje sužinosite, kaip įdiegti „ImageMagick“ skirtingose operacinėse sistemose ir, svarbiausia, kaip ją naudoti paketiniam vaizdų apdorojimui : konvertuoti formatus, vienu metu keisti šimtų nuotraukų dydį, generuoti animacijas, dirbti su scenarijais arba integruoti ją su kitomis kalbomis, tokiomis kaip R, PHP, .NET ar net iOS. Visa tai pagrįsta oficialia dokumentacija, praktiniais pavyzdžiais ir geriausia bendruomenės praktika.
Kas yra „ImageMagick“ ir kodėl jis toks naudingas paketiniam apdorojimui?
„ImageMagick“ yra nemokama ir atvirojo kodo programinės įrangos paketas, specializuojantis rastrinių vaizdų apdorojime. Jis leidžia kurti, redaguoti, derinti ir konvertuoti vaizdus dešimtimis skirtingų formatų: JPEG, PNG, GIF, TIFF, PDF, HEIC, WebP, Ultra HDR ir daugeliu kitų, priklausomai nuo to, kaip juos kompiliuojate.
Didžiausias „ImageMagick“ privalumas paketinio apdorojimo srityje yra pažangus scenarijų rašymo ir automatizavimo palaikymas . Užuot spustelėję kiekvieną vaizdą atskirai grafikos redaktoriuje, galite paleisti komandą arba scenarijų, kuris apdoroja šimtus ar tūkstančius vaizdų ir taiko tą pačią operacijų seką: formato konvertavimą, dydžio keitimą, apkarpymą, teksto anotacijas, filtrus ir pan.
Be komandinės eilutės, „ImageMagick“ siūlo API kelioms kalboms (C, C++, Perl, R, .NET, PHP ir kitoms), todėl ją lengva integruoti į žiniatinklio programas, vidinius įrankius, duomenų srautus ar serverio scenarijus. Programa parašyta C kalba ir veikia „Linux“, „Windows“, „macOS“, taip pat yra specialių „iOS“ versijų.
Šis automatizuojamas metodas leidžia jį plačiai naudoti interneto svetainių kūrime, grafiniame dizaine, vaizdo įrašų kūrime, moksle, medicinoje, astronomijoje ir bet kurioje aplinkoje, kur reikia sistemingai apdoroti didelius vaizdų kiekius.

„ImageMagick“ diegimas skirtingose operacinėse sistemose
„Linux“ diegimas: dvejetainiai failai, RPM ir kompiliavimas iš šaltinio kodo
„Linux“ sistemoje yra keletas „ImageMagick“ diegimo būdų, priklausomai nuo to, ar pageidaujate iš anksto sukompiliuotų paketų, ar kompiliavimo iš šaltinio kodo . Oficialūs dvejetainiai failai apima įvairius „Linux“ platinimus. Jei jūsų platinimas nėra palaikomų sąraše, visada galite pasirinkti rankinį kompiliavimą.
RPM pagrindu sukurtose sistemose (pavyzdžiui, daugelyje įmonių distribucijų) „ImageMagick“ galite įdiegti naudodami automatinio diegimo paketus . Tipiškas pavyzdys būtų:
rpm -Uvh ImageMagick-7.1.2-13.x86_64.rpm
Be pagrindinio paketo, norint, kad programa veiktų tinkamai, jums reikės ir susijusių bibliotekų :
rpm -Uvh ImageMagick-libs-7.1.2-13.x86_64.rpm
Jei paketų tvarkyklė skundžiasi dėl neįvykdytų priklausomybių, įprastas sprendimas yra jas įdiegti iš EPEL saugyklos arba kitų oficialių jūsų distribucijos saugyklų. Kai tai išsprendžiama, „ImageMagick“ yra pasirengusi dirbti su paketiniais failais iš terminalo.
Jei pageidaujate bendresnio metodo, galite atsisiųsti suspaustą paketą, sukurti diegimo katalogą ir ten išskleisti dvejetainius failus . Pavyzdžiui:
cd $ NAMAI
tar xvzf ImageMagick.tar.gz
Po išskleidimo patartina apibrėžti aplinkos kintamąjį MAGICK_HOME, nurodantį katalogą, kuriame buvo įdiegti failai, pavyzdžiui:
eksportuoti MAGICK_HOME=»$HOME/ImageMagick-7.1.2″
Norėdami vykdyti komandas nenurodydami viso kelio, įtraukite „ ImageMagick bin“ pakatalogį į savo kelią:
eksporto kelias =»$MAGICK_HOME/bin:$KElias»
„Linux“ ir „Solaris“ kompiuteriuose taip pat svarbu įtraukti bibliotekų aplanką į LD_LIBRARY_PATH , kad sistema galėtų rasti dinamines bibliotekas:
eksportuoti LD_LIBRARY_PATH=»${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib»
Atlikę šiuos veiksmus, galite greitai patikrinti, ar viskas veikia, paleisdami keletą pagrindinių komandų, tokių kaip:
magiškas logotipas: logotipas.gif
identifikuoti logotipą.gif
rodyti logotipą.gif
Jei matote garsųjį klaidų neturintį testo logotipą, jūsų „Linux“ aplinkoje yra veikianti „ImageMagick“ ir esate pasiruošę atlikti paketinį vaizdų apdorojimą.
„macOS“ diegimas: „Homebrew“ ir iš anksto sukompiliuoti dvejetainiai failai
„macOS“ sistemoje lengviausias būdas įdiegti „ImageMagick“ paprastai yra naudojant „Homebrew“ – populiarią paketų tvarkyklę. Terminale tiesiog paleiskite:
Įdiekite „ImageMagick“
„ImageMagick“ kai kuriems darbo eigoms naudoja „Ghostscript“ šriftus, todėl įprasta įdiegti ir:
brew install ghostscript
Komanda „brew“ įkels dvejetainį failą su daugeliu įjungtų deleguotų bibliotekų (JPEG, PNG, „FreeType“ ir kt.). „Homebrew“ nebesiūlo anksčiau labai konfigūruojamų kompiliavimo variantų; jei jums reikia konkrečių parinkčių (pvz., „librsvg“ palaikymo pažangiam SVG), galite naudoti oficialų „ImageMagick“ „macOS“ platinimą , atsisiųsdami iš anksto sukurtą tarball.
Tokiu atveju tipinis procesas būtų panašus į „Linux“: pasirenkate paketo katalogą, pavyzdžiui, savo namų aplanką:
cd $ NAMAI
Tada išskleiskite atsisiųsto suspausto failo turinį:
tar xvzf ImageMagick-x86_64-apple-darwin20.1.0.tar.gz
Kaip ir anksčiau, apibrėžiate MAGICK_HOME , nurodydami į katalogą, kuriame buvo išpakuotas paketas:
eksportuoti MAGICK_HOME=»$HOME/ImageMagick-7.1.2″
Atnaujinkite PATH, kad nereikėtų rašyti viso kelio į dvejetainius failus:
eksporto kelias =»$MAGICK_HOME/bin:$KElias»
„macOS“ sistemoje taip pat turite sukonfigūruoti DYLD_LIBRARY_PATH dinaminėms bibliotekoms:
eksportuoti DYLD_LIBRARY_PATH=»$MAGICK_HOME/lib/»
Kai tai bus padaryta, galite paleisti tą pačią bandymų seką:
magiškas logotipas: logotipas.gif
identifikuoti logotipą.gif
rodyti logotipą.gif
Atminkite, kad rodymo programai reikalingas „Mac“ kompiuteryje įdiegtas „X11“ serveris. Jei jo neturite, jis yra originaliame „macOS“ DVD diske arba galite naudoti alternatyvas, pvz., „XQuartz“. Šiame kontekste nepamirškite apibrėžti ir:
eksporto EKRANAS =: 0
Kad šie „eksportai“ nereikėtų kartoti kiekvieną kartą atidarant terminalą, praktiškiausia juos pridėti prie .profile failo arba lygiaverčio failo pabaigos (pavyzdžiui, .zshrc, jei naudojate zsh).
„iOS“ diegimas: konkrečios versijos ir statinės bibliotekos
Jei norite integruoti „ImageMagick“ į „iOS“ programą, yra bendruomenės prižiūrima versija, kurioje supakuojamos bibliotekos ir antraštės, paruoštos naudoti „Xcode“ . Paprastai rasite du suspaustus paketus:
- iOSMagick-VERSION-libs.zip: apima kompiliuotas bibliotekas ir antraštes, naudojamas „ImageMagick“ kompiliavimui; tai paketas, kurio paprastai reikia daugumai kūrėjų.
- iOSMagick-VERSION.zip: dar vienas paketas su likusiais komponentais.
Taip pat pateikiamas scenarijus, kuris kompiliuoja „ImageMagick“ skirtą „iOS“ , ir simuliatorius kaip statinė biblioteka, kurią galite pridėti prie savo projekto. Jį naudoti labai paprasta:
./imagemagick_compile.sh VERSIJA
Kur VERSION yra konkreti kompiliuojama versija, pavyzdžiui, 7.1.2-13 arba net svn, jei dirbate su kūrimo kodu. Kai scenarijus sėkmingai baigiamas, vartotojo darbalaukyje sukuriamas aplankas pavadinimu IMPORT_ME, kuriame yra viskas, ko reikia norint importuoti tiesiai į „Xcode“.
Ši versija papildo tokių formatų kaip PNG, JPEG ir TIFF palaikymą , kurie labai dažnai naudojami mobiliuosiuose vaizdų srautuose. Kad projektas būtų tinkamai susietas, būtinai sukonfigūruokite šiuos elementus „Xcode Build“ skirtuke:
- Kitos susiejimo vėliavėlės su tokiomis vertybėmis kaip -lMagickCore-Q16 -lMagickWand-Q16 -ljpeg -lpng -lbz2 -lz.
- Antraštės paieškos keliai siekiama $(SRCROOT) ir pažymėta kaip rekursinė.
- Bibliotekos paieškos keliai taip pat rodo į $(SRCROOT) su rekursine paieška.
Išplėstinių nustatymų srityje galite pridėti vartotojo apibrėžtą kūrimo parametrą, pavyzdžiui, raktą OTHER_CFLAGS su verte -Dmacintosh=1 pakoreguoti tam tikrus vidinius elgesio modelius.
Kai kurios saugyklos siūlo pavyzdinį „iOS“ projektą , kuris, nors ir ne visada atnaujintas, yra naudingas norint pamatyti visas „Xcode“ parinktis ir praktikuotis su „ImageMagick“ naudojimo pavyzdžiais gimtojoje programoje.
„Windows“ diegimas: grafinis diegimo įrankis ir paketų tvarkyklės
„Windows“ sistemoje „ImageMagick“ veikia „Windows 10“ (x86, x64, arm64) arba naujesnėse versijose , taip pat „Windows Server 2012“ ir naujesnėse versijose. Nors programa sklandžiai veikia ir kuklesnėse sistemose, rekomenduojama turėti bent 512 MB RAM; kuo galingesnė aparatinė įranga, tuo geriau ji išnaudos kelių branduolių lygiagretų apdorojimą paketiniam apdorojimui.
Standartinis diegimo būdas – atsisiųsti savaime išsiskleidžiantį diegimo failą iš oficialios svetainės. Tiesiog pasirinkite tinkamą versiją (32 arba 64 bitų, Q8 arba Q16, su DLL arba be jo) ir dukart spustelėkite: vedlys pasirūpins visa kita, užduodamas keletą konfigūracijos klausimų.
Versijos, kurių pavadinime yra Q8, apdoroja 8 bitus kiekvienam spalvos komponentui (pvz., 8 bitai raudonam kanalui, 8 žaliam ir t. t.), o Q16 versijos leidžia 16 bitų vienam kanalui. Naudojant Q16, galima skaityti ir rašyti didelio gylio vaizdus neprarandant tikslumo, tačiau išteklių sunaudojimas yra dvigubai didesnis nei naudojant Q8.
Komponavimo versijose, kurių pavadinimuose yra „dll“, bibliotekos įtraukiamos kaip dinaminių nuorodų bibliotekos . Jei nenaudojate griežtai 32 bitų sistemos, paprastai rekomenduojama 64 bitų versija su DLL , nes ji siūlo labai gerą suderinamumo ir našumo pusiausvyrą.
Be grafinio diegimo įrankio, „ImageMagick“ galite įdiegti naudodami „Winget“ – šiuolaikinę „Windows“ paketų tvarkyklę, kurioje naujausios versijos išleidžiamos su išplėstiniu diegimo įrankiu. Kai kurios įprastos komandos:
„winget“ diegimo programa „ImageMagick.Q16-HDRI“
„winget“ įdiegia „ImageMagick.Q16“
„winget“ įdiegia „ImageMagick.Q8“
Taip pat yra neoficialių paketų, kuriuos siūlo „Winget“, „Scoop“ ir „Chocolatey“ , pavyzdžiui:
„winget“ diegimas „ImageMagick“.
„scoop“ diegimo programa „main/imagemagick“
šokolado diegimas imagemagick
Norėdami patikrinti, ar viskas įdiegta teisingai, atidarykite komandų eilutę ir paleiskite:
magiškas logotipas: logotipas.gif
magiškas identifikavimo logotipas.gif
Jei susiduriate su klaidomis, susijusiomis su vcomp140.dll , jas paprastai galima išspręsti įdiegus „ Visual C++ Redistributable Package“, atitinkantį jūsų „Windows“ versiją. Dar vienas svarbus dalykas: „Windows“ konsolėje komandų kelius turite rašyti kabutėse .
magick «e:/misimages/original.png» «e:/misimages/converted.jpg»
O jei iškvietimus generuojate iš VBScript, turėsite naudoti dvigubas kabutes, todėl gausite kažką panašaus į tai:
Nustatyti objShell = wscript.createobject("wscript.shell")
objShell.Exec(«magic «»e:/myimages/original.png»» «»e:/myimages/converted.jpg»»»)
Patvirtinus, galite nustatyti „Windows“ paketinius scenarijus, kurie iškviečia „magick“ , kad vienu dvigubu spustelėjimu apdorotų ištisus vaizdų aplankus.

Pagrindinės „ImageMagick“ funkcijos dirbant su partijomis
„ImageMagick“ esmė yra komandinė eilutė ( senesnėse versijose – „magick“ , „convert “) ir platus automatinio apdorojimo parinkčių rinkinys . Tarp galingiausių paketinio apdorojimo funkcijų yra šios:
- Animacijos ir judesio efektų palaikymas.
- Išplėstiniai filtrai, pvz. dvišalis neryškumas išlyginti, išsaugant kraštus.
- Spalvų valdymas naudojant ICC profilius ir gama manipuliavimą.
- Spalvų slenkstis dvejetainėms kaukėms generuoti iš chromatinių diapazonų.
- Intensyvus apdorojimas iš Komandinė eilutė.
- Vaizdo kompozicija (vieno vaizdo uždėjimas ant kito tiksliose vietose).
- Sujungtų komponentų žymėjimas regiono analizei.
- Iškiliųjų gaubtinių ir minimalių langelių, apimančių objektus, skaičiavimas.
- Papuošimas rėmeliais ir apvadais.
- Briaunų ir požymių aptikimas (Canny, vidurkio poslinkis, Hough).
- Tiesioginės ir atvirkštinės Furjė transformacijos dažnio analizei.
- Paskirstyta pikselių talpykla labai dideliems darbo krūviams.
- Formų ir teksto piešimas tiesiai ant paveikslėlio.
- Vaizdų šifravimas ir iššifravimas saugiems srautams.
- Konvertavimas tarp formatų (pavyzdžiui, iš PNG į JPEG partijoje).
- Sudėtingi geometriniai iškraipymai, įskaitant perspektyvą ir pasirinktines transformacijas.
- Palaikymas „OpenCL“ ir nevienalyčiam apdorojimui procesoriuje ir grafikos procesoriuje.
- Didelio dinaminio diapazono (HDR) vaizdai su detalėmis itin ryškiose šviesiose ir šešėlinėse vietose.
- Adaptyvus histogramos išlyginimas Ecu kontrastui pagerinti.
- Vaizdų, sekų, vaizdo įrašų ir metaduomenų skaičiavimas ir kaupimas talpykloje.
- Pikselių skaičiuotuvas kuris taiko matematines išraiškas kanalams.
- Įvairių formų (linijinių, radialinių, elipsinių) gradientų generavimas.
- Išsamus formato, dydžio, spalvų erdvės ir metaduomenų identifikavimas.
- Vaizdo sekų ir skaitmeninio kino formatų palaikymas.
- Dirbu su daugiaspektriais vaizdais, kuriuose telpa iki dešimčių juostų.
- Triukšmo mažinimas naudojant specializuotus filtrus (Kuwahara, vidutinio poslinkio ir kt.).
- Perceptual Hash vizualiai panašių vaizdų aptikimui.
- Klasikiniai specialieji efektai: suliejimas, fokusavimas, atspalvis, slenkstis ir kt.
- Teksto ir aprašomųjų ar meninių komentarų įterpimas.
- Daugiasriegiškumo palaikymas (OpenMP), kad būtų galima išnaudoti visas kelių branduolių procesorių galimybes.
- Dydžio transformacijos, pasukimas, apkarpymas, apvertimas ir tiesinimas.
- Skaidrumo valdymas ir virtualūs pikseliai (koordinatės už vaizdo ribų).
Sujungus šias galimybes į gerai sukonstruotą scenarijų ar komandą, galima automatizuoti kasdienes užduotis , pvz., svetainės miniatiūrų generavimą, dydžių normalizavimą prieš apmokant dirbtinio intelekto modelį arba PDF dokumentų paketų konvertavimą į vaizdus.
Saugumas, politikos ir našumas gamybinėje aplinkoje
Kadangi „ImageMagick“ yra tokia galinga, ji taip pat gali tapti atakos platforma, jei nekontroliuojama sistemose, kurios gauna naudotojų failus (pavyzdžiui, į svetainę įkeliamus vaizdus). Todėl kūrėjai rekomenduoja nuo pat pradžių apibrėžti jūsų aplinkai pritaikytą saugumo politiką .
Naujausiose 7-osios šakos versijose yra keli iš anksto apibrėžti politikos profiliai – atvirasis, ribotasis, saugusis ir žiniatinklio saugusis – kurie apibrėžia, kurios operacijos leidžiamos, kokie formatai priimami, išteklių apribojimus ir pan. Galite pradėti nuo vieno iš jų, pritaikyti jį pagal savo poreikius ir patvirtinti naudodami paties projekto pateiktą politikos tikrinimo įrankį .
Kita vertus, jei naudojate senesnes versijas, yra „ImageMagick“ „senoji“ svetainė su 6.9.13-38 šaka, tačiau oficiali rekomendacija yra pereiti prie 7 šakos, kuri yra labiau patobulinta saugumo, komandų srauto ir našumo požiūriu.
Kalbant apie našumą, „ImageMagick“ pagal numatytuosius nustatymus yra sukurtas kaip Q16 HDRI , tai reiškia 16 bitų vienam kanalui ir palaiko vertes, kurios yra už diapazono ribų (pvz., neigiamos arba didesnės už normalizuotą maksimumą), daugiausia naudojant slankiojo kablelio operacijas. Jis idealiai tinka aukštos kokybės apdorojimui, tačiau sunaudoja daugiau atminties ir procesoriaus laiko.
Jei jūsų paketiniams procesams nereikia tokio didelio tikslumo, galite išjungti HDRI ir sumažinti Q8 gylį iki ne HDRI . Remiantis dokumentacija, tai sumažina atminties naudojimą perpus kiekvienam pakeitimui ir grįžta prie sveikųjų skaičių operacijų, kurios paprastai yra greitesnės. Ne HDRI Q8 versijai Linux sistemoje naudojamos tokios konfigūracijos parinktys:
–with-quantum-depth=8 –disable-hdri
7.1.1-16 ir vėlesnėse versijose palaikymą galima įjungti net iki 64 kanalai Pridėti parinktį prie „Linux“ konfigūracijos –enable-64bit-channel-masks„Windows“ sistemoje ši funkcija automatiškai įjungiama modernioje versijoje.
Masinis automatizavimas „Linux“ ir „macOS“ sistemose naudojant „bash“ scenarijus
Vienas iš labiausiai paplitusių būdų naudoti „ImageMagick“ paketiniame apdorojime yra derinti jį su „bash“ skriptais Unix tipo sistemose. Bendruomenė sukūrė didžiulę skriptų kolekciją, skirtą visų rūšių efektams: geometrinėms transformacijoms, suliejimui, triukšmo šalinimui, formos analizei, dažnio filtrams ir kt.
Tipinės jų naudojimo gairės yra šios:
- Įsitikinkite, kad turite BC tikslumo skaičiuoklė, kurį daugelis vidinių programų naudoja dešimtainiams skaičiams apdoroti.
- Atsisiųskite scenarijų ir, jei jis turi plėtinį .dms, pervadinkite jį, kad jį pašalintumėte, arba pakeiskite į .sh.
- Suteikite failui vykdymo teises naudodami kažką panašaus į chmod u+x script.sh.
- Raskite tikrąjį maršrutą konvertuoti / magija veikia terminale tipo -a konvertuoti ir jei rodomi keli maršrutai, žr. kiekvieno iš jų versiją su path/convert -version kad nuspręstumėte, kurį naudoti.
- Pakoreguokite sistemos PATH kintamąjį, kad įtrauktumėte aplanką, kuriame yra „ImageMagick“ (dažnai / usr / bin o / usr / local / bin) arba redaguokite scenarijų pridėdami kažką panašaus į:
imdir="/usr/local/bin"
KELIAUS="${imdir}:${KELIAS}" - Iš terminalo paleiskite scenarijų naudodami bash su sintaksė:
bash /full/path/script.sh argumentai /input/path /output/path
Kad būtų paprasčiau, paprastai rekomenduojama sukurti specialų katalogą „ImageMagick“ skriptams ir įtraukti jį į savo kelią (PATH). Tokiu būdu galėsite juos iškviesti pavadinimu neįvesdami viso kelio, o skriptai, kurie iškviečia kitus skriptus, be jokių problemų ras vienas kitą.
Jei kai kuriuose scenarijuose naudodami pagalbos parinktį matote neįprastus pranešimus, gali tekti pakoreguoti eilutes, kuriose naudojamas „sed“, kad būtų rodoma integruota dokumentacija; bendruomenė pasiūlė keletą variantų, kad tekstas nebūtų dubliuojamas. Be to, daugelis scenarijų priklauso nuo AWK , o kai kuriuose „Linux“ distribucijose numatytasis AWK neveikia taip, kaip tikėtasi, todėl gali būti patartina aiškiai įdiegti GAWK ir įsitikinti, kad jis veikia.
Skriptų rinkinį sudaro dažni atnaujinimai, dokumentuoti klaidų ištaisymai ir specialūs įrankiai FFT, dekonvoliucijai, erdviniams filtrams ir formos analizei . Daugelį šių senesnių skriptų pakeitė vietinės „ImageMagick“ funkcijos (pvz., `-auto-level` , `-brightness-contrast` , `-morphology` , `-distort barrel/depolar` , `-compare -metric ssim` ir kt.), tačiau jie išlieka puikiu įkvėpimo šaltiniu kuriant savo paketinius procesus.
Išplėstinis naudojimas R kalboje su magick paketu
Jei dirbate duomenų mokslo ar statistinės analizės srityje, tikriausiai naudojate R. Šioje aplinkoje „magick“ paketas siūlo modernų „ImageMagick STL“ apvalkalą su idiomatine R API ir galinga vektorinių vaizdų palaikymu.
„Windows“ ir „macOS“ sistemose paprasčiausias būdas įdiegti iš CRAN naudojant:
install.packages("magiškas")
CRAN dvejetainiai failai yra iš anksto sukonfigūruoti su įjungtomis svarbiausiomis funkcijomis. Norėdami pamatyti, kas yra prieinama jūsų konkrečioje instaliacijoje, galite naudoti `magick_config()` , kuriame pateikiama išsami informacija apie versiją, aktyvias funkcijas (cairo, fontconfig, freetype, heic, rsvg, webp ir kt.) ir išjungtas funkcijas.
„Linux“ sistemoje, norint kompiliuoti „Magick“ iš šaltinio kodo, pirmiausia reikia įdiegti „ ImageMagick++“ kūrimo biblioteką . Jei naudojate „Debian“ / „Ubuntu“, ji vadinasi maždaug taip:
sudo apt-get install libmagick++-dev
„Fedora“, „CentOS“ arba „RHEL“ sistemose paketas paprastai yra „ImageMagick-c++-devel“ , kurį galima įdiegti naudojant „yum“ arba „dnf“:
sudo yum install ImageMagick-c++-devel
Galiausiai, „macOS“ sistemoje, jei norite kompiliuoti iš šaltinio kodo, turėsite įdiegti „ImageMagick“ arba „ImageMagick@6“, kurį įdiegė „Homebrew“:
įdiekite „imagemagick@6“
Kai pakuotė bus pakrauta su biblioteka (magija)Galite skaityti paveikslėlius iš vietiniai maršrutai, URL arba RAW vektoriai naudojant nuskaitytas vaizdas. Funkcija vaizdo_informacija Pateikiama pagrindinė informacija (formatas, plotis, aukštis, spalvų erdvė, tankis ir kt.), kažkas panašaus į komandą nustatyti iš „ImageMagick“ komandinės eilutės sąsajos.
Norėdami įrašyti vaizdus, naudojate `image_write` , kuris leidžia įrašyti vaizdo objektą į diską bet kokiu norimu formatu arba, jei nenurodytas kelias, grąžinti baitus į atmintį. Galite nurodyti formatą naudodami `format` parametrą , kad konvertuotumėte į kitą tipą nekeisdami failo pavadinimo.
Svarbiausias dalykas dirbant su paketais yra tai, kad magiški objektai yra vektoriniai : galite turėti vaizdų vektorių ir taikyti vektorizuotas funkcijas (apkirpimą, mastelio keitimą, anotavimą, filtrus, kompozicijas), kurios veikia visus elementus. Be to, funkcijos grąžina modifikuotą vaizdo kopiją , todėl transformacijas lengva grandinuoti naudojant kontūrus ( |> arba %>%), o tai labai gerai atitinka R filosofiją.
Darbas su sekomis, sluoksniais ir animacijomis
Galinga „ImageMagick“ koncepcija, taikoma paketiniam apdorojimui, yra vaizdo vektoriai . R kalboje, taip pat ir komandinės eilutės sąsajoje (CLI), įprasta vaizdų seką (pavyzdžiui, GIF kadrus arba PDF puslapius) traktuoti kaip sutvarkytą rinkinį, kuriam galima taikyti masines transformacijas.
Pavyzdžiui, skaitant animuotą GIF arba PDF failą, kiekvienas kadras arba puslapis tampa vektoriaus elementu . Naudodami tokias operacijas kaip „image_append “, „image_mosaic“ , „image_flatten“ , „image_animate“ arba „image_morph“ , galite generuoti miniatiūrų juosteles, mozaikas, koliažus, naujus animuotus GIF failus arba laipsnišką vaizdų keitimą.
Pavyzdžiui, galite sukurti animaciją iš kelių sluoksnių, pakeisdami jų visų mastelį iki 200x200, tada naudodami „image_animate“ su konkrečiu kadrų dažniu ir išsaugodami rezultatą su „image_write“ . Panašiai, jei importuojate esamą GIF failą ir norite jį redaguoti, galite dirbti kadras po kadro, taikyti filtrus, rėmelius ar anotacijas ir galiausiai surinkti seką iš naujo.
Ilgiems PDF dokumentams naudojant image_read_pdf galite iš anksto nurodyti vaizdavimo tankį (pvz., 72 dpi), o kiekvienas puslapis yra paruoštas paketiniam apdorojimui: apkarpymui, mastelio keitimui, sujungimui ir pan. Tai ypač naudinga, kai reikia sugeneruoti dokumentų peržiūras arba išskirti puslapius kaip atskirus vaizdus.
„ImageMagick“ žiniatinklio aplinkose ir kitomis kalbomis
Be R, „ImageMagick“ puikiai integruojasi su kitomis programavimo aplinkomis. Yra specializuoti PHP scenarijai , kurie iškviečiami iš serverio su „exec“, perduodant įvesties ir išvesties kelius bei efekto parametrus. Naudojimo gairės panašios į „bash“, bet pritaikytos žiniatinklio aplinkai (PATH modifikavimas, teisės, absoliutūs keliai ir kt.).
Jei dirbate su .NET, turite prieigą prie „Magick.NET“ – bibliotekos, kuri „ImageMagick“ funkcionalumą suteikia tiesiogiai C# programoms, nereikalaujant atskiro programos diegimo. Ji idealiai tinka vaizdų konvertavimo ir paketinio apdorojimo paslaugų nustatymui REST API, foninėse užduotyse arba darbalaukio projektuose.
Be to, „ImageMagick“ ekosistemoje yra oficialūs CLI naudojimo pavyzdžiai ir „Receptų knyga“ su „Windows“ skirtais receptais, apimančiais tokias užduotis kaip vaizdų sujungimas, miniatiūrų generavimas, vaizdinis palyginimas ir kt.
Patyrusiems vartotojams taip pat yra trečiųjų šalių įrankių ir bendruomenės scenarijų, tokių kaip populiarieji „Fred's ImageMagick Scripts“ , kurie apima meninius efektus (lomografija, rašomoji mašinėlė, kristalizacija, „bokeh“, teksto švytėjimas ir kt.) ir praktinius sprendimus realioms problemoms (vaizdų pasukimo atstatymas, vandens ženklų pašalinimas, keturkampių kampų nustatymas, apkarpymas pagal atitinkamą turinį ir kt.). Daugelį šių scenarijų galima lengvai integruoti į paketinius apdorojimo srautus.
Galiausiai „ImageMagick“ stiprybė paketinio apdorojimo srityje slypi plačiame integruotų funkcijų sąraše , integracijoje su tokiomis kalbomis kaip R, .NET ir PHP, bei didžiuliame bendruomenės sukurtų scenarijų ir pavyzdžių kiekyje, apimančiame viską – nuo nesvarbių užduočių iki matematiškai sudėtingų transformacijų. Tinkamai sukonfigūruotas ir taikant tinkamą saugumo politiką, jis tampa labai patikimu įrankiu bet kokiam rimtam darbo eigai, susijusiam su dideliais vaizdų kiekiais.
