Bikin Pelihat Gambar Besar di hp [catatan development ga teratur]
Ku pengen bisa liat foto di komputer lewat hp. rasanya lebih enak liat gambar2
yang ada orang kawaiinya ato gambar apapun yang bagus di hp, walau layarnya
kecil, daripada di kompu. Mungkin karena bisa lebih dekat di mata dan gambarnya
pun ada di genggaman tangan, jadi kesannya lebih wah gitu :D Selain itu karena di
hp, liatnya bisa sambil tiduran ^^ makin asik :D
Namun namun namun, ada masalah2.
Biasanya kan kalo mau liat foto di hp, masukin aja fotonya ke hp, setelah itu
pakelah program pelihat gambar di hp, maka foto itu pun masuk.
Masalah 1: ukuran asli foto sekitar 10 megapixel. Maka untuk load file itu butuh
skitar 30 MB. sedangkan ram hp ku (nokia 3250) cuma sekitar 16 MB setelah boot.
jadi ga mungkin termuat.
Masalah 2: ukuran file sekitar 3 MB per foto, sangat lama ditransfer lewat gigibiru
dan memorikad pun terbatas ukurannya.
Pemecahan masalah 1: kecilin aja dulu fotonya, baru masukin.
Masalah 1.1: loh kalo ada yang cakep2 ga bisa dizoom sampe rinci dong, kan
resolusinya berkurang.
Pemecahan masalah 2: berarti kalo bisa dari 3 MB itu, ga usa semua diload,
bagian2 yang perlu dari foto itu aja yang diload.
Masalah 2.1: gimana cara memecah bagian mana yang mau diload, kan pusing
masa satu2 diliatin dulu fotonya, dikrop dan ditransfer ke hp?
*Solusi* :D
Walau cukup berantakan, tapi cukup sukses tampaknya :D tadi malam ku pake
sekitar 1 jam sampe abis batre ^^;
Cara: bikin server gambar di komputer, dan bikin klien pelihat gambar di hp.
Lalu:
*kirim hanya bagian yang dipesan dari hp* , sebesar ukuran layar hp.
Misalnya, hp kirim permintaan ke komputer "ukuran layar hp ini 176*144,
minta potongan gambar mulai koordinat 1000, 652 dengan zoom 68%".
Lalu komputer akan kirim potongan gambar sebesar 176*144 itu ke hp, dan hp
tinggal tampilin kiriman itu.
Teknologi: di komputer: apache, pake php dengan gd2 library buat proses gambar
di hp: j2me. midp 2.0, cldc 1.1. dibangun pake netbin 6.
1. Konekin dulu hp dan komputer. Ku pake
*gnubox* buat koneknya. Sebetulnya
di nokia s60 uda ada fasilitas konek internet pake kompu lewat blutut, cuma ga
ada UInya. gnubox ini sebagai UInya.
Akibatnya hp dapet ip 192.168.1.111 dan kompu tetep pake ip 192.168.1.88.
2. Pasang program LiatFoto (klien) di hp. Pilih foto yang mau diliat dari daftar,
pencet atas bawah kiri kanan buat geser yang keliatan, 7 zoom in, 9 zoom out
(atau kebalik, lupa)
3. Jalanin web servernya di kompu. Nah pembangunan server gambar ini cukup
merepotkan, karena,
Dengan cara biasa yaitu: (load file asli JPG 3 MB (10mpx) -> krop bagian yang
mau -> resample -> enkod jadi jpg lagi -> output), butuh sekitar 2.5 detik,
dengan sebagian besar waktu dipake di load file asli. Jadi cuma buat geser
tampilan dikit aja butuh lama, jadi mengesalkan.
Ketemu cara optimisasi yaitu: (load file asli -> save jadi file .gd2 di temp -> ...)
dan saat kedua kalinya bisa load dari file .gd2 yang lebih cepat daripada jpg,
karena bisa load sebagian doang (load dan krop disatukan).
Nah dengan cara ini bisa dipercepat sampe 0.2 detik. Tapi setelah zoom out,
misalnya 10%, untuk layar hp 176*144 butuh krop sebesar 1760*1440. Walau load
dari file gd2, tetep aja lama karena banyak yang perlu diload.
Jadi pake cara lain, yaitu (load file asli -> save jadi file .gd2 di temp -> bikin
zoom 50% dari file asli -> save jadi file .gd2 di temp lagi -> ...). Untuk selanjutnya,
kalau zoom yang diminta 50% atau kurang, bisa load dari file gd2 yang uda dikecilin.
Hasilnya cukup sukses menurutku, dan sekarang ku bisa menikmati foto2 besar
di hp sambil tiduran ^^
*Tembak layar* (walau ga menarik, karena gambarnya fulskrin, kecuali sebaris
teks status di atas):
img/16
Di tembak layar ini, yang diminta x=158 y=46 z=0.13 (zoom 13%), ukuran layar
176*144, maka file asli akan dikrop di x=1215 y=353 sebesar 1353*1107.
(tentu saja pake file gd2 kecil yang disebutkan sebelumnya biar lebih cepat,
jadi koordinatnya dibelah dua.)