Belajar ImageMagick - Resize, Crop & Transform
Episode 4 of 23

Belajar ImageMagick - Resize, Crop & Transform

Menguasai ukuran dan transformasi gambar: mengubah dimensi dengan resize, scale, dan thumbnail, memahami operator rasio aspek, memotong dengan crop, serta mengendalikan rotasi, flip, flop, trim, extent, dan penempatan dengan gravity.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 3 kalian menguasai konversi format — dari PNG ke JPEG hingga WebP, dengan verifikasi lewat magick identify — sekarang kita masuk ke kemampuan yang paling sering dipakai kedua: mengubah ukuran dan transformasi gambar.

Di dunia nyata, hampir tidak ada sistem yang memakai gambar dalam ukuran aslinya. Foto diubah menjadi thumbnail, hero image di-crop sesuai rasio, logo di-rotate, dan semua itu harus konsisten untuk ribuan file. Episode ini memberi kalian kendali penuh atas dimensi, potongan, dan orientasi gambar.

Dasar Geometri Resize

Opsi -resize menerima geometry — spesifikasi ukuran target. Bentuk paling sederhana adalah persentase dan dimensi pasti:

Resize dengan persentase dan dimensi
magick sample.png -resize 50% half.png
magick sample.png -resize 800x600 fit.png

Tanpa operator tambahan, 800x600 berarti fit di dalam kotak: gambar diskalakan agar muat di dalam 800x600 dengan rasio aspek tetap — tidak ada peregangan. Inilah perilaku yang paling sering diinginkan.

Operator Rasio Aspek

-resize menjadi jauh lebih kuat dengan operator yang ditempelkan di akhir geometry:

GeometryArti
800x600Fit di dalam kotak, rasio aspek tetap
800x600^Isi kotak minimal, rasio tetap, bisa terpotong
800x600!Paksa dimensi persis, rasio bisa berubah
50%Skala sesuai persentase
800x600>Kecilkan hanya jika lebih besar dari target
800x600<Perbesar hanya jika lebih kecil dari target
Praktik operator geometry
magick sample.png -resize 800x600^ crop-fit.png
magick sample.png -resize 800x600! stretch.png
magick sample.png -resize 800x600> shrink-if-large.png

Note

Simbol operator seperti ^ dan ! adalah bagian dari nilai geometry, jadi pastikan selalu dalam satu token tanpa spasi800x600^ benar, 800x600 ^ salah. Ketika dipakai di dalam script shell, ada baiknya menaruh geometry dalam tanda kutip: "800x600^" — aman dari kejutan interpretasi shell.

-scale dan -thumbnail: Tiga Saudara Resize

OpsiKarakteristik
-resizeKualitas tinggi, memakai filter resampling
-scaleLebih cepat, tanpa filter — hasil lebih kasar pada perbesaran
-thumbnailResize + strip metadata + optimasi, dirancang untuk thumbnail web
Perbandingan resize, scale, thumbnail
magick sample.png -resize 320x320 resize.png
magick sample.png -scale 320x320 scale.png
magick sample.png -thumbnail 320x320 thumb.png

-thumbnail adalah jalan pintas yang cerdas: selain resize, ia membuang metadata (efek -strip) dan memilih pengaturan yang menguntungkan ukuran file. Untuk galeri atau daftar artikel yang butuh banyak thumbnail kecil, -thumbnail hampir selalu pilihan terbaik.

Crop: Memotong Gambar

-crop memotong sebagian gambar sesuai geometry WxH+X+Y — lebar, tinggi, lalu offset dari pojok kiri atas:

Crop satu area spesifik
magick sample.png -crop 300x200+40+30 cropped.png
Crop dengan gravity (penempatan)
magick sample.png -gravity center -crop 400x300+0+0 centered.png

-gravity memindahkan titik acuan: dengan center, offset +0+0 berarti crop di tengah gambar. Kombinasi -gravity dan -crop adalah cara paling umum memotong foto untuk rasio tertentu — misalnya membuat cover 16:9 dari foto landscape atau potrait.

Important

Setelah -crop, ImageMagick meninggalkan informasi halaman (offset) pada gambar. Jika offset tidak diinginkan — misalnya untuk PNG yang akan dipakai sebagai layer — tambahkan +repage untuk mereset halaman ke nol: magick sample.png -gravity center -crop 400x300+0+0 +repage out.png.

Rotate, Flip, Flop

OpsiEfek
-rotate 90Putar 90 derajat searah jarum jam
-rotate -45Putar 45 derajat berlawanan arah jarum jam
-flipCermin vertikal (atas bawah)
-flopCermin horizontal (kiri kanan)
Transformasi orientasi
magick sample.png -rotate 90 rotated.png
magick sample.png -flip flipped.png
magick sample.png -flop flopped.png

Saat memutar dengan sudut yang bukan kelipatan 90 derajat, pojok gambar membentuk area kosong. Isi area itu dengan -background agar tidak berwarna hitam:

Rotate dengan latar belakang
magick sample.png -background white -rotate 45 tilted.png

Trim dan Extent: Mengurangi dan Menambah

-trim memotong border polos di tepi gambar — sangat berguna untuk hasil tangkapan layar atau gambar dengan padding putih:

Trim border polos
magick sample.png -trim +repage trimmed.png

Untuk gambar dengan border berwarna yang tidak benar-benar polos, tambahkan -fuzz untuk toleransi warna:

Trim dengan toleransi fuzz
magick sample.png -fuzz 10% -trim +repage fuzzy-trim.png

Kebalikannya, -extent menambah kanvas — mengubah ukuran kanvas tanpa menskalakan isi:

Extent dengan gravity dan warna dasar
magick sample.png -gravity center -background black -extent 800x600 canvas.png

Pola -gravity center -extent WxH menghasilkan gambar berkanvas baru dengan isi di tengah — teknik ini dipakai untuk menyeragamkan ukuran dalam grid galeri tanpa merusak rasio aspek aslinya.

Penutup

Pada episode 4 ini, kalian telah menguasai resize, crop, dan transform: mengubah ukuran dengan -resize, -scale, dan -thumbnail, memahami operator geometry untuk rasio aspek, memotong dengan -crop, serta mengendalikan orientasi dan kanvas dengan -rotate, -flip, -flop, -trim, -extent, dan -gravity.

Inti yang harus dibawa pulang:

  • -resize menjaga rasio aspek secara default; operator ^, !, %, >, < mengubah perilakunya.
  • -thumbnail adalah pilihan terbaik untuk thumbnail web (resize + strip + optimasi).
  • -crop dengan -gravity adalah pola paling umum untuk memotong ke rasio tertentu.
  • -trim menghilangkan border; -extent menambah kanvas — keduanya sering berpasangan dengan +repage.
  • Biasakan magick identify setelah transformasi untuk memverifikasi dimensi.

Di episode 5 selanjutnya, kita akan membahas colorspace, channel, dan alpha — mengkonversi warna antar colorspace, mengurangi palet dengan -colors dan -posterize, mengatur level, gamma, dan kontras, bekerja per channel dengan -channel, serta mengelola transparansi dengan -alpha, -transparent, dan -channel-fx. Sampai jumpa di episode 5!