Mamat Zone

HOME | SITEMAP

Simultan Load Image in JAVA

Posted on 2008-05-01 10:40:34 by mamat, 0 Comments

Simultan Load Image

Ini adalah ide untuk Monitoring menggunakan Camera yang nantinya
diakses menggunakan mobile.

Hehe sebenarnya simple aja sih, tapi jadi suatu yang menarik. Se-
benarnya yang diinginkan itu adalah si Handphone bisa mengakases
secara realtime video dari server video. Kita bisa menggunakan Java TV API. Misal kita ingin mengakses realtime video dari TV Kabel misal. Tapi kebutuhan hardware juga harus diperhatikan karena minimal requirements dalah 32 MB RAM memory dan 32 MB
flash memory dan CDC/PBP/ Java TV.

Mengaccess video
dengan menggunakan koneksi yang lambat wew bisa menghabiskan pulsa.
Klo kebutuhan kita cuma memonitor gak harus video, image yang se-
cara simultansih masih ok kok. Makanya kita bikin Image Server yang
update tiap 5 detik hehe.

J2ME mempunyai fitur yang kaya dengna adanya JMF(Java Media Frame-
work) bagi programer JAVA harusnyobak deh rugi klo gak nyobak ;P.
Jadi arisitektur pembuatannya adalah sebagi berikut:

[CAMERA/FTP]---[FTP SERVER]---[WEB SERVER]---[MOBILE]

Camera memiliki fiture untuk mengirim image recorder ke ftp. Tapi
dengan kamera Rp 600.000,- yang udah suport ftp/wifi. Wah sebenar-
nya klo mau bahas bagaimana cara mengirim file image ke FTP Server
bisa dengan banyak cara. Kita bisa bikin crawel dari server sendiri.
Mungkin itu bisa dikembangkan lebih lanjut. Saya cuma mau bahas co-
dingnya aja sih. Hehe dari pada ilmunya kelupaan, atau hardisk rusak
yah ide akan hilang sia-sia dan gak bermanfaat.

Jika image sudah beres mengirim secara otomatis ke ftp server dan bi-
diakses menggunakan web server misal di "http://mamat.amikom.ac.id/
imageserver/img.jpg". Kita tinggal coding aja. Berikut adalah cupli-
kan terpenting dari code program di J2ME. Code ini dimasukkan ketika
event command.

				
new Thread(new Runnable() {
    public void run() {
		try{
            Timer refresh = new Timer();
            TimerTask tt = new TimerTask() {
                public void run() {
                    form1.deleteAll();
					ImageLoad il = new ImageLoad("http://mamat.amikom.
					ac.id/imageserver/img.jpg");
                    form1.setTitle("Lokasi:"+list1.getString(list1.get
					SelectedIndex()));
                    form1.append(il.getImage());
                    Date d = new Date();
                                           
                    form1.append(d.toString());
                }
			};	
            refresh.schedule(tt,0,15000);
        }catch(Exception e){
            System.out.print(e);
        }
    }
}).start();

			


Berikut ini adalah code untuk load image menggunakan HttpConnection.
				
/*
 * ImageLoad.java
 * Created on May 1, 2008, 10:36 PM
 */

package main;

import java.io.DataInputStream;
import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Image;

/**
 *
 * @author mamat-dev
 */
public class ImageLoad {
    Image img;
    
    /** Creates a new instance of ImageLoad */
    public ImageLoad(String url) {
        this.img = loadImage(url);
        
    }
    
    public Image getImage(){
        return this.img;
    }
    
    public Image loadImage(String url){
        HttpConnection hc = null;
        DataInputStream in = null;

        try {
          hc = (HttpConnection)Connector.open(url);
          int length = (int)hc.getLength();
          byte[] data = null;
          if (length != -1) {
            data = new byte[length];
            in = new DataInputStream(hc.openInputStream());
            in.readFully(data);
          }else {
            // If content length is not given, read in chunks.
            int chunkSize = 512;
            int index = 0;
            int readLength = 0;
            in = new DataInputStream(hc.openInputStream());
            data = new byte[chunkSize];
            do {
              if (data.length < index + chunkSize) {
                byte[] newData = new byte[index + chunkSize];
                System.arraycopy(data, 0, newData, 0, data.length);
                data = newData;
              }
              readLength = in.read(data, index, chunkSize);
              index += readLength;
            } while (readLength == chunkSize);
            length = index;
          }
          Image image = Image.createImage(data, 0, length);
          return image;
        } catch (IOException ioe) {
            return null;
        } finally {
          try {
            if (in != null) in.close();
            if (hc != null) hc.close();
          } catch (IOException ioe) {}
        }
    }
}

			


Pernah mencoba lebih baik, daripada tidak sama sekali

Other Articles