Pada episode ini kita berurusan dengan jejak digital yang ikut terbawa di file gambar: EXIF, XMP, dan metadata lain. Kita mempelajari cara membuangnya dengan strip, membaca dan mengubahnya dengan set dan format string, serta membersihkan lokasi GPS dan identitas penulis sebelum gambar dipublikasikan.

Di episode 15 kalian mengendalikan dari mana gambar datang. Episode ini tentang sesuatu yang lebih halus: apa yang ikut datang di dalam gambar itu sendiri. Sebuah foto JPEG dari smartphone modern tidak hanya berisi pixel — ia berisi kamera yang memotret, waktu pemotretan, dan sering kali koordinat GPS yang akurat.
Episode 16 membuka dunia metadata gambar: apa yang tersimpan di balik pixel, bagaimana membacanya, mengubahnya, dan — yang paling penting — bagaimana membersihkannya sebelum gambar melintasi batas publikasi. Di era di mana satu koordinat GPS bisa mengungkap alamat rumah, memahami metadata bukan kenyamanan; ini kewajiban.
Gambar JPEG bisa berisi lebih dari satu lapis metadata sekaligus:
Bayangkan pixel sebagai isi koper, dan metadata sebagai label yang ditempel di luarnya. Kebanyakan orang memperhatikan isi koper — sedikit yang ingat label itu bisa berbicara lebih banyak daripada isinya. Koordinat GPS adalah label paling jujur: ia tidak pernah bohong tentang di mana foto diambil.
Cara paling lengkap untuk membongkar koper metadata adalah identify -verbose:
magick identify -verbose photo.jpgOutputnya panjang dan berisi segalanya: dari properti gambar seperti dimensi dan colorspace, hingga blok Properties yang memuat metadata EXIF/XMP. Untuk langsung menuju metadata tanpa ribuan baris lain, filter dengan format string:
magick identify -verbose photo.jpg | grep -A 30 PropertiesDi bawah bagian Properties kalian akan melihat kunci seperti exif:GPSLatitude, exif:GPSLongitude, exif:Make, exif:Model, date:create, dan date:modify. Baris-baris inilah yang harus kalian cari jika ingin tahu apa yang foto kalian ungkapkan.
Tip
Pemeriksaan cepat untuk melihat apakah sebuah file masih membawa data lokasi: magick identify -format '%[EXIF:GPSLatitude] %[EXIF:GPSLongitude]'{:bash} foto.jpg. Output kosong berarti koordinat sudah hilang; angka berarti lokasi masih tertanam dan belum aman untuk dipublikasikan.
Untuk mengekstrak satu properti ke dalam script, -format adalah pilihan yang tepat. Format string ImageMagick memakai %[...] untuk membaca properti image:
magick identify -format '%[orientation]' photo.jpgmagick identify -format '%[EXIF:Make] %[EXIF:Model]' photo.jpgPerintah pertama mengembalikan orientasi foto (misalnya TopLeft atau LeftBottom), perintah kedua mengembalikan merk dan model kamera. Nilai-nilai ini bisa langsung dipakai di shell script — misalnya untuk menolak foto yang orientasinya tidak normal, atau mencatat kamera apa saja yang dipakai tim kalian.
Ketika kalian siap mempublikasikan gambar, senjata utama adalah -strip — membuang semua metadata yang tidak perlu:
magick input.jpg -strip -quality 85 output.jpg-strip menghapus profil ICC (di episode 11), komentar, EXIF, XMP, dan semua properti yang bukan pixel. Hasilnya adalah gambar telanjang: hanya data visual. Ini langkah wajib untuk gambar yang akan ditampilkan di web — foto yang diunggah pengguna ke aplikasi kalian tidak punya alasan untuk membawa koordinat rumah sang pengguna ke browser pengunjung lain.
-strip bekerja seperti menyapu semua isi rumah — efektif, tapi kasar. Kadang kalian ingin menghapus sebagian metadata dan mempertahankan yang lain, misalnya mempertahankan orientasi (yang memengaruhi tampilan foto) sambil membuang lokasi. Untuk itu ada penghapusan per kunci:
magick input.jpg -set 'exif:GPSLatitude' '' -set 'exif:GPSLongitude' '' out.jpgmagick input.jpg -set 'exif:Artist' '' -set 'exif:Copyright' '' out.jpg-set menulis ulang nilai sebuah properti; nilai kosong ('') menghapusnya. Pendekatan ini mempertahankan orientasi dan data lain yang ingin dipertahankan, sementara menyingkirkan lokasi dan identitas — seperti melepas label tertentu dari koper alih-alih membuang kopernya.
Important
Jangan pernah berasumsi satu operasi -set cukup. Metadata bisa tinggal di beberapa lapis sekaligus (EXIF, XMP, dan IPTC). Untuk gambar yang akan dipublikasikan, kombinasikan penghapusan selektif dengan -strip sebagai pembersihan terakhir — dan verifikasi dengan identify -verbose bahwa yang seharusnya hilang benar-benar hilang.
Arah sebaliknya juga berguna: menulis metadata yang diinginkan — hak cipta, deskripsi, atau label internal:
magick input.jpg -set exif:Artist 'Arman Dwi Pangestu' \
-set exif:Copyright 'CC-BY 4.0' -set comment 'batch-prod' output.jpgBaris di atas menanamkan nama penulis, lisensi, dan komentar ke dalam output. Berguna untuk pelacakan aset: komentar batch-prod membuat setiap file bisa diidentifikasi dari mana asalnya — selama metadata tidak di-strip oleh proses berikutnya.
Ritual lengkap yang sebaiknya menjadi kebiasaan di setiap pipeline yang menerima foto pengguna:
magick input.jpg -auto-orient -strip -quality 85 out.jpg
magick identify -format '%[EXIF:GPSLatitude] %[EXIF:GPSLongitude]' out.jpgPerintah pertama menormalisasi orientasi (-auto-orient), membuang semua metadata (-strip), dan mengecilkan ukuran. Perintah kedua memverifikasi hasilnya — dan karena -strip sudah berjalan, ia seharusnya hanya mengembalikan karakter kosong. Langkah verifikasi ini bukan formalitas: ia memastikan bahwa apa yang seharusnya hilang memang hilang.
Metadata EXIF bukan satu-satunya jejak digital yang ikut terbawa. File gambar juga menyimpan:
date:create dan date:modify — kapan file dibuat dan diubah, sering kali mengungkap pola kerja.Analogi yang tepat: metadata adalah jejak kaki di lumpur, sedangkan karakteristik optik adalah pola sidik jari. -strip membersihkan jejak kaki dengan mudah; sidik jari kamera tetap ada dan tidak bisa dibuang oleh ImageMagick. Untuk foto yang sangat sensitif, kesadaran ini cukup — kebanyakan publikasi tidak membutuhkan forensik setajam itu.
Warning
-strip tidak pernah mengubah pixel — ia hanya membuang metadata. Jika kalian perlu menyamarkan asal kamera secara forensik (bukan sekadar GDPR), dibutuhkan teknik pengolahan gambar yang jauh lebih dalam, di luar jangkauan episode ini. Untuk kebutuhan publikasi normal, -strip ditambah verifikasi sudah sangat memadai.
Episode 16 menutup lubang privasi yang paling sering dilupakan: metadata yang ikut terbawa di file gambar. Kita belajar membuka koper dengan identify -verbose, membaca satu properti dengan format string %[...], membuang semua metadata dengan -strip, menghapus selektif dengan -set, menulis metadata hak cipta untuk pelacakan aset, dan membersihkan GPS serta identitas sebelum publikasi.
Inti yang perlu diingat: file gambar adalah pembawa pesan ganda — satu untuk mata, satu untuk mesin. Kalian mengontrol lapisan pertama lewat pixel; lapisan kedua hanya bisa dikendalikan lewat metadata, dan kontrol itu wajib sebelum gambar meninggalkan server kalian.
Di episode 17 berikutnya kita kembali ke seni gambar itu sendiri: advanced compositing dan layers — menggabungkan banyak gambar, shadow dan glow, serta masking selektif untuk menyunting per-region. Sampai jumpa!