Dagens ImageMagick leksjon dekker hvordan å endre størrelsen på bilder, endre saken på filtyper, konvertere filformater, konstruere et prøvetrykk av miniatyrbilder, og søke etter og sortere bilder etter deres . Exif data
ImageMagick pakke med bildebehandling og manipulere kommandoer har eksistert evig, og lurer i alle slags steder: det er den bildebehandlings backend i Drupal, Lyx, Openshot, og mange flere. ImageMagick er über-kraftig, og fordi det er et kommandolinjeprogram du kan bygge smarte skript med det og automatisere rutineoppgaver. Du kan vende, speil, endre størrelse, forvrenge, skjær, og rotere bilder gjøre spesialeffekter, redigere farger, og trekke linjer og former; lage miniatyrer, gallerier og bevis ark. Den støtter en Skillion bildeformater og har APIer for en horde av programmeringsspråk, for eksempel MagickCore (C), MagickWand (C), Magick ++ (C ++), JMagick (Java), RMagick (Ruby), TclMagick (Tcl /TK), og flere.
Den mest verdig bruk av ImageMagick jeg noensinne har sett, er å manipulere bilder for Opp-ned-ternet, som er en sleip skript som bruker iptables og ImageMagick å ha det gøy med snyltere som pochere din wi-fi. Det gjen dirigerer sider til Kittenwar! og mangles bilder på andre sider.
man imagemagick viser alle kommandoer. Det er ingen imagemagick kommando. . Displayet kommandoen åpner et grafisk redigering grensesnitt (Fig. 1)
Det opprinnelige bildet var for stort, så jeg endret størrelsen det med konvertitt:
$ konvertere plotter 1.png -resize 550X fig-1-s.pngresize verdien er bredden i piksler. Bredde kommer alltid først, og du kan være sikker på ved å sette en x etter verdien, uten mellomrom. Når du angir bare bredden da det nye bildet vil være akkurat som bredde og høyde vil automatisk være i proporsjon. Når du ønsker å angi høyden, gi høyden verdien prefiks med en x, som dette:
$ convert fiken 1.png -resize x250 fig-1-s.pngEn ting du må å se med de ulike ImageMagick kommandoene er å overskrive originalbildene. . Med konvertitt du bevare den opprinnelige og opprette ny fil ved å gi den et annet navn
Stopp Shouting
Windows og en rekke kameraer er som gamle folk på Facebook: de rope på deg i stor bokstav. My Canon kamera skriver filnavn med store bokstaver, slik at de ser ut som WP7_4117.CR2. Du kan enkelt gjøre alle filtyper små bokstaver med dette Bash one-liner:
$ for fil i * .CR2; gjøre mv $ fil $ {fil %% CR2.} .CR2; gjort
Convert Formats
convert kommandoen konverterer bildefilformater. Du kan endre den øvre til små bokstaver besvergelse for å batch-konvertere formater, som dette eksemplet som konverterer .png til .jpg:
$ for fil i * .png; gjøre konvertere $ fil $ {fil %% png.} .jpg; gjortDette bevarer originalene og skaper nye bilder i det nye formatet med samme filnavn, som dette:
$ lsbittersweet.jpg bittersweet.png einer-berries.jpg einer-berries.pngStandardkvalitetsnivået for JPG-filer konvertert fra andre formater er 92. Du kan styre den med -kvalitet alternativet med verdier fra 1 til 100, der 1 er maksimal komprimering og crappiest kvalitet, til 100 som er best kvalitet og minst komprimering. Dette eksemplet bruker 75, som er et anstendig nivå for webbilder:
$ for fil i * .png; gjøre konvertere -kvalitet 75 $ fil $ {fil %% png.} .jpg; Ferdig
Proof Sheet
Nå som du har en fin bunke med bilder for å beundre, lage en prøveutskrift, slik at du kan beundre dem alle i en enkelt .jpg:
$ montage-label '% f'-geometri 350x + 7 + 7' * .jpg "proof-sheet.jpgDette resulterer i noe lignende figur 2, med hvert bilde 350 piksler bred, grenser 7 piksler, og filnavnene til hvert bilde . Hvis du liker en fin ramme i stedet for en vanlig grensen, skaper -frame [verdi i piksler] en ramme rundt hvert bilde, og -mattecolor [farge] lar deg velge rammen farge hvis du ikke liker standard meh grå. Fargenavn forteller deg fargekoder.
Som med all ImageMagick kommandoer er det squillion alternativer. Bruk -pointsize 12 for å sette en skriftstørrelse på 12 poeng, eller andre størrelser som du ønsker, og disse alternativene lar deg finjustere etikettene:
% b - filstørrelse på byte
% m - filformat
% G - image dimensjon i piksler
% Q -. bildekomprimeringsnivå
Det er måten mer, og du kan finne dem alle på ImageMagick rømming.
Trekke Exif
identifisere kommandoen leser Exif-data av fotografier. Du kan enkelt vise en grunnleggende sett av informasjon:
$ identifisere kitten.jpgkitten.jpg JPEG 3648x2736 3648x2736 + 0 + 0 8-bit DirectClass 4.402MB 0.000u 0: 00.000Vil du se alt det er å vite om bildene dine? Prøv dette:
$ identifisere -verbose kitten.jpgDet er en flom av data, slik at du kan finjustere det å lete etter spesifikk informasjon, som hvilke bilder med .CR2 forlengelse i gjeldende katalogen ble tatt med blits:
$ for fil i * .CR2; identifiserer -format '% [exif: flash] [% f]' $ fil; done16 [WP7_4272.cr2] 16 [WP7_4273.cr2] 9 [WP7_4274.cr2] 9 [WP7_4275.cr2]Så ... 9 og 16. Ok. Hva gjør de mener? EXIF flash-koder er kombinasjoner av følgende verdier:
0: FlashDidNotFire1: FlashFired2: StrobeReturnLightDetected4: StrobeReturnLightNotDetected8: CompulsoryFlashMode16: AutoMode32: NoFlashFunction64: RedEyeReductionModeSå 16 betyr at kameraet var i autoblitsmodus, men Blitz ikke utløst. 9 betyr obligatorisk blitsmodus, og det gjorde brann (8 + 1). Så du kan legge til en egrep besvergelse å finne bare de bildene der en flash ble avfyrt:
$ for fil i * .CR2; identifiserer -format '% [exif: flash] [% f]' $ fil | egrep ^ '1 | 9 | 17 | 65'; gjortLegg merke til de områder etter hvert nummer i egrep søkemønster. Som begrenser søket til de eksakte tallene, og filtrerer ut større tall som 11 og 9897 og slikt.
Du kan grave opp noen Exif tag du vil med å identifisere, og ImageMagick Escapes beskriver dusinvis av rømming å bruke. Men det er ikke en komplett liste, så den raskeste måten å se hva tags du kan søke på er å kjøre identifisere -verbose [filnavn], og deretter se på resultatet. Det kommer til å være forskjellig for ulike bildeformater, og det kommer til å variere avhengig av om bildene er redigert, og programvaren som brukes. Her er en forkortet eksempel:
$ identifisere -verbose WP7_4275.cr2 dato: create: 2014-01-29T16: 35: 34-08: 00 dato: endre: 2014-01-29T16: 35: 34- 08:00 DNG: Aperture: F5 DNG: focallength: 28,0 mm DNG: ISOSpeed: 640 DNG: Objektiv: Canon EF 24-105mm f /4L IS DNG: Modell: EOS 7D exif: Datetime: 2 013: 12: 25 15:59 : 28 exif: Flash: 9Så du kan trekke ut noen av disse på denne måten:$ identifisere -format '% [exif: datetime]% [DNG: aperture]% [DNG: linse]% [DNG: Modellen] 'WP7_4275.cr2 2013: 12: 25 15:59:28 F5 Canon EF 24-105mm f /4L IS EOS 7DDette gir deg en effektiv måte å finne bilder med bestemte egenskaper, som for eksempel linse, kamera, blits eller ingen blits, dato, brennvidde, størrelse, bitdybde ... hvis det er i Exif kan du finne og sortere det
En mer moro Exif tips:. Hvis du kommer til å legge ut bilder på nettet, kan det være lurt å kle Exif-data slik at du ikke gi bort for mye informasjon. Du kan gjøre dette med mogrify kommando:
$ mogrify -stavs kitten.jog
Eller strippe en hel katalog av bilder:
$ mogrify -stavs /imagesforweb /*Rare og true Exif faktum: Selv om det er en mye brukt standard, er det ikke vedlikeholdt av noen. Den gjeldende versjonen, 2.3, ble utgitt i 2010 av Japan Electronics and Information Technology Industries Association (JEITA) og Camera and Imaging Products Association (CIPA). Siden da har det blitt foreldreløse. Anmeldelser