Skip to content

Instantly share code, notes, and snippets.

@kohrongying
Last active March 5, 2020 02:28
Show Gist options
  • Select an option

  • Save kohrongying/81d9583366776287872b938de550a5dc to your computer and use it in GitHub Desktop.

Select an option

Save kohrongying/81d9583366776287872b938de550a5dc to your computer and use it in GitHub Desktop.
Imagick Cheatsheet

IMAGES

PNG <=> JPG

convert name.png name.jpg
convert *.png *.jpg
convert name.png -resize 512x name.jpg
convert name.png -resize 1242x2208\! name.png ## force resize

PDF => JPG

(requires installation of ghostscript)

brew install gs

CROP IMAGE

convert foo.png -crop 640x480+50+100 out.png

CONVERT TO GREYSCALE

convert icon.png -colorspace Gray icon_bnw.png

COMPOSE FILE

convert -size 800x800 xc:transparent transparent.png

MERGE TWO IMAGES (OVERLAP)

convert -gravity Center -composite white.png foo.jpg combined.png

JOIN IMAGES HORIZONTAL (SIDE BY SIDE)

convert +append foo.png bar.jpg result.png
montage foo.png bar.jpg -tile 2x1 -geometry +0+0 result.png

JOIN IMAGES VERTICAL (TOP BOTTOM)

convert -append *.png out.png

REMOVE alpha channel ADD background color

convert foo.png -background "#0c39ff" -alpha remove result.png

VIDEO

PNG => GIF

convert -delay 30 -loop 0 -dispose 2 *.png image.gif
with a 30ms delay between frames, loop forever, and disposing of previous image (no stacking)

MP4 => GIF

(requires installation of ffmpeg)

brew install ffmpeg
ffmpeg -i name.mp4 name.gif

OR

mkdir frames
ffmpeg -i input.mp4 -vf scale=320:-1:flags=lanczos,fps=10 frames/ffout%03d.png
convert -loop 0 frames/ffout*.png output.gif

CROP AUDIO

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

M4A => MP3

ffmpeg -i kaching.m4a -vn -ar 44100 -ac 2 -ab 192k -f mp3 kaching.mp3

REDUCE VOLUME

ffmpeg -i buzzer-sound-effect.mp3 -filter:a "volume=0.5" buzzer-soft.mp3

CROP VIDEO

ffmpeg -i foo.mp4 -ss 00:00:33 -t 3 -async 1 cut.mp4

BLUR VIDEO

ffmpeg -i foo.mp4 -filter_complex \
 "[0:v]crop=1080:1920:0:0,boxblur=10[fg]; \
  [0:v][fg]overlay=0:0[v]" \
-map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart fooblur.mp4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment