Finally setelah bergelut lama dengan Indy (Internet Direct) akhirnya aku mendapatkan cara bagaimana me-load gambar dari URL akhirnya aku mendapatkan cara me-load gambar dari URL menggunakan Stream. Sebenarnya seh aku bukan programmer yang fokus ke aplikasi desktop but fokus ke web programming tapi karena tuntutan keperluan dari institusi dimana Sistem Informasi yang aku buat membutuhkan otomatisasi dalam pengambilan gambar melalui webcam akhirnya aplikasi ini kubuat. Rancangan utama aplikasi ini adalah mengambil gambar melalui webcam yang terpasang, meng-capture dan mengirim gambar yang sudah di-capture ke server. Cara mengirim gambar ke server melalui HTTP alias port 80 berarti agent diserver menggunakan bahasa pemrograman server side. Yup keuntungan dari menggunakan agent jenis ini adalah aplikas kita dapat jalan di sistem operasi manapun.
Aplikasi ini digabungkan dengan aplikasi2 lain seperti aplikasi pendaftaran dan lain2. Setelah melakukan perjalanan panjang dalam membuat aplikasi ini akhirnya aku menemukan masalah. Masalahnya adalah bagaimana cara melihat foto2 yang ada diserver. Delphi secara default tidak menyediakan mekanisme untuk melihat gambar di server melalui URL. Akhirnya setelah lama bergelut dengan masalah ini (aku udah coba cari di Google dan bertanya di forum but nothing useful) dan masalah dengan kemalasanku aku menemukan cara untuk memecahkan masalah ini yaitu menggunakan stream.
Ups ternyata setelah dicoba dengan cara apapun stream juga tidak berhasil. Tetapi setelah aku begelut lama dengan stream aku menemukan ternyata selain FileStream, BlobStream ada Stream yang lain juga yang berjenis StringStream. Yup inilah pembuka jalan untuk menampilkan gambar. Stream biasa tidak bisa menampilkan gambar karena stream biasa hanya menampung ekstensi dari gambar saja string biasa hanya menampung isi ÿØÿà dari HTTP.
Akhirnya setelah menemukan StringStream (aku menemukan cara ini singkat loch, not more than 15 minutes, no google help and manual help) dan menemukan cara mengkonversi Stream ke StringStream aku bisa menampilkan gambar dari URL baik online maupun hanya sekedar localhost ke aplikasi delphi.
Oke lets start our toturial
- Pastikan ada komponent Tedit, IdHTTP, Tbutton dan Timage.
- Kita akan menampilkan image dari URL ke Timage.
- Sekarang object2 yang di-instance dari class2 diatas biarkan saja secara default ditentukan oleh delphi.
- Jangan lupa menggunakan uses JPEG dibagian atas.
- Gambar akan ditampilkan dengan event onclick dari button dengan URL yang diketikkan dari Tedit.
- Buat variabel yang diperlukan seperti
strimnya : TStream;
jp : TJPEGImage;
§ Oke sekarang buat Stream dari strimnya
strimnya := TStream.Create;
§ Sekarang ubah stream menjadi StringStream
strimnya := TStringStream.Create(IdHTTP1.Get(Edit1.Text));
§ Setelah stream didapat dan disimpan dalam variabel sekarang buat JPEG nya
jp := TJPEGImage.Create;
§ Baru sekarang load JPEG nya dari stream yang sudah disimpan di variabel strimnya
jp.LoadFromStream(strimnya);
§ Save ke file yang sudah disiapkan, misalnya a.jpg didalam direktori yang sama dengan aplikasi.
jp.SaveToFile(ExtractFilePath(Application.ExeName)+'a.jpg');
§ Setelah disimpan sekarang gambar bisa ditampilkan ke Timage
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'a.jpg');
§ Oia sekedar tambahan, jika ingin menggunakan resource jangan lupa untuk ”membebaskan” resource yang digunakan sehingg memori akan lebih kecil untuk aplikasi coz memori yang dipakai dilepaskan setelah digunakan
§ For complete of source code di event onclick dari button
procedure TForm1.Button1Click(Sender: TObject);
var
strimnya : TStream;
jp : TJPEGImage;
begin
//
strimnya := TStream.Create;
try
strimnya := TStringStream.Create(IdHTTP1.Get(Edit1.Text));
jp := TJPEGImage.Create;
try
jp.LoadFromStream(strimnya);
jp.SaveToFile(ExtractFilePath(Application.ExeName)+'a.jpg');
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'a.jpg');
finally
jp.Free;
end;
finally
strimnya.Free;
end;
end;
§ Oke just it all...
”Digitalindo Design offer the best service for you”
Regards,
Very, Engineer in Digitalindo Design (http://www.digitalindodesign.com/)
4 komentar:
kalo upload Gambar Gimana Bos ????
om..saat dijalankan aplikasinya ada error.
error nya. could not load ssl library
apa yg harus ane lakukan om?
klo stream video via url gimana bro?
Posting Komentar