Skriptning av bildändringar med ImageMagik

Automatisk storleksanpassning av bilder för statiska webbplatser

Sidinnehåll

Mainroad teman i Hugo ändrar inte automatiskt storlek på bilder, kopierar bara från statisk mapp. Vi behöver därför förbereda ett skript för att ändra storlek och beskära bilder till rätt storlek.

678x495 wizard

När

Jag har flera bildkällor - mobiltelefon och kamera är de mest frekvent använda. De har olika upplösningar och förhållanden.

Vi behöver en bearbetningssekvens:

  • central beskärning till förhållande
  • ändra storlek (minska) till två upplösningar. Jpeg-kvalitet - 80% räcker.
    • 235x171
    • 678x495

Var

Anta att källbilderna finns i mappen ~/tmp/img_src Vi behöver

  • flytta resultatbilder till mapparna ~/tmp/img_235x171 och ~/tmp/img_678x495
  • namnge bilderna som _235x171.jpg och _678x495.jpg

Hur

I ubuntu linux kommer vi att använda imagemagick

sudo apt-get install imagemagick

Beskärningssteget:

convert wizard.png -gravity center -extent 11:8 wizarc.jpg
# kontrollera nu geometrin
identify wizard.png wizarc.jpg

Storleksändringssteget

convert wizarc.jpg -resize 678x495 -quality 80 -interlace plane wizarc_678x495.jpg
convert wizarc.jpg -resize 235x171 -quality 80 -interlace plane wizarc_235x171.jpg
# kontrollera nu geometrin
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

80 är en jpeg-kvalitet, och plane betyder progressiv jpeg. Det kommer att hjälpa till att ladda bilder snabbare på långsamma anslutningar, inte bara för att först laddas en miniatyr, utan filen i sig är mindre. Åtminstone i trollkarlens fall.

Med ramar

convert wizarc.jpg -resize 676x493 -quality 80 -interlace plane -border 1x1 wizarc_678x495.jpg
convert wizarc.jpg -resize 233x169 -quality 80 -interlace plane -border 1x1 wizarc_235x171.jpg
# kontrollera nu geometrin
identify wizarc.jpg wizarc_678x495.jpg wizarc_235x171.jpg

Den bild du ser i början av denna post och proportionerna på källbilden såg ut så här:

20% av trollkarlen

det är efter enkel storleksändring och tillägg av ram

convert wizard.png -resize 20% -quality 85 -interlace plane -border 2x2 wizard20.jpg

Andra alternativ

nautilus-image-converter

nautilus-image-converter är ett nautilus-tillägg för att massändra storlek eller rotera bilder. För att installera nautilus-image-converter i alla nuvarande versioner av Ubuntu, öppna terminalen och skriv:

sudo apt-get install nautilus-image-converter

Det lägger till två kontextmenyalternativ i nautilus så att du kan högerklicka och välja “Resize Image”. (Det andra är “Rotate Image”).

Du kan göra en hel mapp med bilder på en gång om du vill och du behöver inte ens öppna ett program för att göra det.

Du måste starta om din nautilus för att se nya kontextmenyer, kör

nautilus -q

och klicka sedan på ikonen för hemkatalogen för att ladda om nautilus med det nya plug-in.

mogrify

Kommandot mogrify ersätter originalfilerna med de storleksändrade bilderna:

mogrify -resize 50% *.png # behåll bildens förhållande mogrify -resize 320x240 *.png # behåll bildens förhållande mogrify -resize 320x240! *.png # behåll inte bildens förhållande mogrify -resize x240 *.png # behåll inte bildens förhållande mogrify -resize 320x *.png # behåll inte bildens förhållande

Andra användbara verktyg

Hämta bildmetauppgifter - som upplösning, bitdjup etc. - del av imagemagick-paketet.

identify image.jpg

kommer att producera något som

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

Konvertera bilder till pdf

convert $(ls -v *.jpg) foobar.pdf
convert $(ls -v *.png) foobar.pdf

Användbara länkar