Netteki Resimleri Kullanabilen İmage Objesi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Netteki Resimleri Kullanabilen İmage Objesi
program içine yerleştirdiğim image veya jvimage objeleri ile localdeki resimleri görüntüleyebiliyorum ben host'um altınadaki resim klaörümde yer alan resimleri görüntülemek istiyorum bunu nasıl yapabilirim.
örnek;
localdeki path'im c:\resimler
hosttaki path ise ftp://xx.xxx.xx.xx/httpdocs/resimler bu şeklilde bunu bi türlü başaramadım ayrı bir bileşen felan mı kullanmalıyım
örnek;
localdeki path'im c:\resimler
hosttaki path ise ftp://xx.xxx.xx.xx/httpdocs/resimler bu şeklilde bunu bi türlü başaramadım ayrı bir bileşen felan mı kullanmalıyım
Re: Netteki Resimleri Kullanabilen İmage Objesi
LoadFromFile ile deneyin. Dosya adı olarak resmin URL'sini verin.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
csunguray at netbilisim.kom
Net Bilişim Hizmetleri
Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Re: Netteki Resimleri Kullanabilen İmage Objesi
hocam zatem öyle yapıyorum ama olmuyor işte
Re: Netteki Resimleri Kullanabilen İmage Objesi
bunun için bir çok yöntem geldi aklıma. basitten zora yazayım
1. resimleri bir webbrowser nesnesi içinde açmayı deneyebilirsiniz (ftp desdeklemez sanırım).
2. image nesnesini kullanmak istiyorsanız, resmi kaydedip açabilirsiniz (idhttp yada idftp ile geçici bir klasöre kaydederek).
3. resmi bir tsream içine idhttpden yada idftpden aldıktan sonra image nesnesine aktarabilirsiniz (temp klasörüne ihityacınız olmaz).
1. resimleri bir webbrowser nesnesi içinde açmayı deneyebilirsiniz (ftp desdeklemez sanırım).
2. image nesnesini kullanmak istiyorsanız, resmi kaydedip açabilirsiniz (idhttp yada idftp ile geçici bir klasöre kaydederek).
3. resmi bir tsream içine idhttpden yada idftpden aldıktan sonra image nesnesine aktarabilirsiniz (temp klasörüne ihityacınız olmaz).
Re: Netteki Resimleri Kullanabilen İmage Objesi
hocam sağol sanırım başkada alternatif kalmıyor benim için en sağlıklısı 3. seçenek olacaktır bu konuda biraz aydınlatırmısın lütfen
Re: Netteki Resimleri Kullanabilen İmage Objesi
Stream aldığında Stream içeriğine binary olarak bakarak içerdiği resmin tipini anlaman lazım. Öncelikle bunun altını çizeyim.
Gelen resmin JPG olduğunu bildiğini varsayarak şöyle bir örnek hazırladım.
Uses satırına JPEG ve IdHttp eklemeyi unutma...
Başarılar...
Gelen resmin JPG olduğunu bildiğini varsayarak şöyle bir örnek hazırladım.
Uses satırına JPEG ve IdHttp eklemeyi unutma...
Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
IdHttp : TIdHttp;
Stream : TMemoryStream;
Url : WideString;
JPG : TJpegImage;
begin
Url := 'http://www.armantr.com/images/Delphi2007.jpg';
IdHttp := TIdHTTP.Create(self);
try
IdHttp.HandleRedirects := True;
IdHttp.AllowCookies := True;
with IdHttp do
begin
Request.UserAgent := 'Mozilla/4.0';
Request.Connection := 'Keep-Alive';
Request.ProxyConnection := 'Keep-Alive';
Request.CacheControl := 'no-cache';
end;
Stream := TMemoryStream.Create;
try
try
IdHttp.Request.Referer := '';
IdHttp.Get(Url,Stream);
// LoadFromStream komutundan önce mutlaka "Position := 0" yapmak lazım...
// Çünkü stream beslendiğinde position daima sondadır...
Stream.Position := 0;
JPG := TJpegImage.Create;
JPG.LoadFromStream( Stream );
Image1.Picture.Bitmap.Assign(JPG);
JPG.Free;
except
on e:exception do
begin
//error handling
end;
end;
finally
Stream.Free;
end;
finally
IdHttp.Free;
end;
end;
Re: Netteki Resimleri Kullanabilen İmage Objesi
Hocam ellerine sağlık. Yazıdığın kodu bende denedim gerçekten mükemmel çalışıyor ve çok hızlı. Ancak ben birşey merakediyorum. Görüntüleyeceğim resmin jpg,gif,bmp ..... olduğunu nasıl anlayabilirim.mrmarman yazdı:Stream aldığında Stream içeriğine binary olarak bakarak içerdiği resmin tipini anlaman lazım. Öncelikle bunun altını çizeyim.
Gelen resmin JPG olduğunu bildiğini varsayarak şöyle bir örnek hazırladım.
Uses satırına JPEG ve IdHttp eklemeyi unutma...
Başarılar...Kod: Tümünü seç
procedure TForm1.BitBtn1Click(Sender: TObject); Var IdHttp : TIdHttp; Stream : TMemoryStream; Url : WideString; JPG : TJpegImage; begin Url := 'http://www.armantr.com/images/Delphi2007.jpg'; IdHttp := TIdHTTP.Create(self); try IdHttp.HandleRedirects := True; IdHttp.AllowCookies := True; with IdHttp do begin Request.UserAgent := 'Mozilla/4.0'; Request.Connection := 'Keep-Alive'; Request.ProxyConnection := 'Keep-Alive'; Request.CacheControl := 'no-cache'; end; Stream := TMemoryStream.Create; try try IdHttp.Request.Referer := ''; IdHttp.Get(Url,Stream); // LoadFromStream komutundan önce mutlaka "Position := 0" yapmak lazım... // Çünkü stream beslendiğinde position daima sondadır... Stream.Position := 0; JPG := TJpegImage.Create; JPG.LoadFromStream( Stream ); Image1.Picture.Bitmap.Assign(JPG); JPG.Free; except on e:exception do begin //error handling end; end; finally Stream.Free; end; finally IdHttp.Free; end; end;
Re: Netteki Resimleri Kullanabilen İmage Objesi
İlk akla gelen iki ihtimal sunabilirim.
1. Web sitesindeki resimler genelde PNG, JPG veya GIF olarak bulunur. Sen TRY..EXCEPT bloklarıyla bu üçünü sıklıkla bulunma sırasına göre deneme yanılma ile test edersin. Bu kolay bir metoddur.
2. Resmin ne türde olduğunu BINARY kontrol ile yani gelen STREAM'in ilk birkaç byte'lık kısmındaki HEADER kısmından faydalanarak dosya tipini öğrenerek nokta tespiti yaptırabilirsin.
Sanırım sen kısa yol olan birinci yolu tercih edebilirsin. Ben projelerimde lazım olduğunda genelde ikinci yolu kullanırım çünkü yaptığım fonksiyonları modül olarak her an elimin altında hazır bulunmasını isterim. Ayrıca Word, Excel, ZIP, RAR, EXE vb. hangi tipte olduğunu da test ederek gelen dosyanın uzantısı ne olusa bile yapısal içeriği farklı olan (bozuk dosya - virüs / trojan eklenmiş olan vs.) gibi mevzuları da hesaba katarım.
1. Web sitesindeki resimler genelde PNG, JPG veya GIF olarak bulunur. Sen TRY..EXCEPT bloklarıyla bu üçünü sıklıkla bulunma sırasına göre deneme yanılma ile test edersin. Bu kolay bir metoddur.
2. Resmin ne türde olduğunu BINARY kontrol ile yani gelen STREAM'in ilk birkaç byte'lık kısmındaki HEADER kısmından faydalanarak dosya tipini öğrenerek nokta tespiti yaptırabilirsin.
Sanırım sen kısa yol olan birinci yolu tercih edebilirsin. Ben projelerimde lazım olduğunda genelde ikinci yolu kullanırım çünkü yaptığım fonksiyonları modül olarak her an elimin altında hazır bulunmasını isterim. Ayrıca Word, Excel, ZIP, RAR, EXE vb. hangi tipte olduğunu da test ederek gelen dosyanın uzantısı ne olusa bile yapısal içeriği farklı olan (bozuk dosya - virüs / trojan eklenmiş olan vs.) gibi mevzuları da hesaba katarım.
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Re: Netteki Resimleri Kullanabilen İmage Objesi
selamlar arkadaşlar bu konuda ben deneme sonucu kullandığım 3.nesil bir kompananet setinin bir elamananının bu işi çok iyi yaptığını farkettim.sizinle paylaşayım dedim. imageEn diye bir bileşen seti. bu setle photoshop yapabilirsiniz web kamaersından tutunda tarayıcı programına, güvenlik programlarına, resimle ilgili herşey video ile ilgili her şey yapılablir. içindeki resim göstericiyi koyun forma resim adresi olarak loadfromfile('www.adres.com/resim.png') gibi denemiz yeterli... ;