TIFF 6.0 Editor
Posted on 14. Sep, 2009 by ziaulhaq in Techno
As I told u b4, saya harus review kembali bahasa C. Tugas pertama diminta bikin editor gambar berformat TIFF (.tif). Program yang dibuat nantinya bisa membaca file gambar format .tif, memutar dan meng crop gambar.
Format gambar TIFF dikeluarkan oleh Adobe. Saya dikasih file spesifikasi TIFF versi 6.0. File ini bisa didownload di sini.
OK, saya jelasin dikit tentang TIFF Editor ini.
Kalo kita buka file gambar menggunakan editor tertentu (saya pake MIFES), akan tampak bahwa sebuah file gambar terdiri dari puluhan ato bahkan ratusan ribu data hexadecimal. Tugas editor adalah membaca dengan benar data-data hexa tersebut, dan kemudian menyusun ulang ketika diperlukan pengeditan.
Gambar format TIFF sendiri memiliki dua format:
- Big-Endian. Dua byte pertama selalu berawalan 4D4D.H (baca: 4D-4D, dalam hexadecimal), atau disebut dengan MM karena byte 4D4D.H kalo diterjemahkan jadi karakter ASCII akan jadi huruf MM. Penjelasan mudahnya, pada struktur Big-Endian semua byte dibaca urut dari address ke-0 sampe selesai.
- Little-Endian. Dua byte pertama selalu berawalan 4949.H, atau disebut dengan II. Pada struktur Little-Endian, pembacaan byte dibalik per grup byte, jadi misalnya ada grup data yang terdiri dari 4 byte data, misalnya 00 FE 4F 3E, maka dibacanya jadi 3E 4F FE 00.
Sampe sekarang, blum tau deh pastinya knapa ada dua format kek gitu. Bikin pusing aja.
Duh, males banget nih mau nulis.
OK deh, intinya, untuk membaca format TIFF ini, pertama kita baca dulu byte pertama biar tau dia BIG ato LITTLE, terus cari alamat IFD (Direktori Gambar) pada byte ke-5 sampe 8. Kalo udah tau alamatnya, cari si IFD sampe dapet. Kalo udah dapat, dari IFD kita bisa baca metadata gambar kayak om Roy Suryo, apa aja yang ada di gambar: Panjang, Lebar, Tanggal, Software, dll. Trus cari alamat StripOffset-nya. Strip Offset adalah alamat data pertama gambar yang ditampilkan. Percaya ngga? dari puluhan ribu data heksa yang bikin pusing itu, ternyata data gambarnya kadang cuma 30 byte, tapi kadang juga ribuan byte.
Ya, gitu aja deh. Kalo udah ketemu data gambarnya, selanjutnya maen2 pake operasi C nya aja. Mo dibalik, diputar, dibanting, dijual, apa aja deh.
OK. Bye.

