Install

用 brew 來安裝

brew install imagemagick

Basic usage

指令是用 magick,不是 imagemagick

  • Check version
$ magick -version
Version: ImageMagick 7.1.1-23 Q16-HDRI aarch64 21803 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(5.0) 
Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib zstd
Compiler: gcc (4.2)
  • support image

    $ magick -list format
    
  • convert to webp: 將 wizard.png 轉換成「有損+quality50」的 webp 檔案

    imagemagick - webp

    $ magick wizard.png -quality 50 -define webp:lossless=false wizard.webp
    

Compression rate

皮卡丘原圖 JPEG 檔案 - 2.5MB pikachu-raw

  • webp 無損 - 5.8M

    magick pikachu-raw.jpeg -define webp:lossless=true pikachu.webp
    
  • webp 無損 50 - 5.3MB

    magick pikachu-raw.jpeg -define webp:lossless=true -quality 50 pikachu.webp
    
  • webp 有損 - 2.0M

    magick pikachu-raw.jpeg -define webp:lossless=false pikachu.webp
    
  • webp 有損 50 - 351k

    magick pikachu-raw.jpeg -define webp:lossless=false -quality 50 pikachu.webp
    

然後不曉得為何 hugo 會旋轉我的圖片 🥹 pikachu.webp

  • jpeg 再次壓縮 quality 50 - 603K
    magick pikachu-raw.jpeg  -quality 50 pikachu.jpeg
    

結論

不曉得為何會被旋轉的 webp,然後壓縮後的 jpeg 跟 webp 差不多。雖然在這篇 Build timeout Jpeg vs Webp processing - hugo community 提到 webp 比較快,但在被旋轉的 webp 沒解決前,應該會用壓縮的 jpeg,畢竟檔案大小差不多 XDDD

Reference website