Jpeg resim kaydetme veya dosyadan gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Jpeg resim kaydetme veya dosyadan gösterme

Mesaj gönderen bobasturk »

merhaba,

Kod: Tümünü seç

procedure TFormArsiv.Label47Click(Sender: TObject);
begin
  if fileexists(dm1.DosyaYoluIBDataSet.fieldbyname('FOTO_YOLU').AsString+dm1.ArsivIBDataSet.fieldbyname('CERAIMNO').AsString+'.jpg') then
    begin
      image1.Picture.LoadFromFile(dm1.DosyaYoluIBDataSet.fieldbyname('FOTO_YOLU').AsString+dm1.ArsivIBDataSet.fieldbyname('CERAIMNO').AsString+'.jpg');
      label47.Visible:=false;
    end
    else
    begin
  if not fileexists(dm1.DosyaYoluIBDataSet.fieldbyname('FOTO_YOLU').AsString+dm1.ArsivIBDataSet.fieldbyname('CERAIMNO').AsString+'.jpg') then
      showmessage('"'+dm1.arsivibdataset.fieldbyname('CERAIMNO').AsString+
      '"'#13'Ceraim Numaralı Şahsın'#13'Fotoğrafı Kayıtlarda Yok');
      label47.Visible:=true;
    end;
yukarıdaki koda benzer bir kod ile fotoğrafları gösteriyorum. sorunum şu;

150 000 kayıtlık bir veritabanında yaklaşık 50000 resim yükleyeceğiz. 200 veya 400 kb. olduğu düşünülerek yapılan hesap sonucunda yaklaşık 20 gb lik bir büyüklük yapıyor. windowsun dosya boyut sınırı buna yetmiyor. bu sebeple program klasörü içinde oluşturulan foto klasöründe resimleri saklayacağım. benden istenen yaş aralığında çıkan sonuçta dönen kayıtların fotoğraflarını slayt olarak gösterilmesi. bu 3-4 bin kayıt ta olabilir, daha az veya çokta olabilir.

-yukarıdaki bir uygulamada fotoğrafların gösteriminde windows yönünden veya program yönünden sıkıntı yaşarmıyım?
-daha hızlı veya mantıklısı ne olabilir?

zira image nesnesine nil komutunu vermediğimde yaklaşık 300 fotoğraflık kayıt üzerinde gezinti yaptıktan sonra programı kapattığımda hata mesajı aldım, nil komutundan sonra bu hata dönmedi. fikir ve yardımlarınızı paylaşırsanız sevinirim.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Jpeg resim kaydetme veya dosyadan gösterme

Mesaj gönderen orhancc »

nili nereye veriyorsun aldığın hata nedir ?
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: Jpeg resim kaydetme veya dosyadan gösterme

Mesaj gönderen bobasturk »

merhaba,

Kod: Tümünü seç

procedure TFrmKayitFiltre.JvXPButton14Click(Sender: TObject);
begin
  sorgulardm.SicilFiltreIBQry.Next;
  if fileexists(extractfilepath(paramstr(0))+'foto\'+inttostr(sorgulardm.SicilFiltreIBQry.fieldbyname('MAHALLISICIL').asinteger)+'.jpg') then
  begin
      image1.Picture:=nil;
      image1.Picture.LoadFromFile(extractfilepath(paramstr(0))+'foto\'+inttostr(sorgulardm.SicilFiltreIBQry.fieldbyname('MAHALLISICIL').asinteger)+'.jpg');
  end
  else
  begin
    image1.Picture:=nil;
  end;
end;
tam olarak yukarıdaki kodu kullanıyorum. şu an hata vermediğinden hata mesajını tam olarak söyleyemeyeceğim. şunu söyleyeyim programın kapanışında windowsun hata raporu ilk karşıma çıkmıştı.

yukarıdaki kodda hata mesajı aldığımda

Kod: Tümünü seç

image1.picture:=nil;
komut satırı yoktu. hatayı alınca aklıma pekçok fotoğraf hafızaya dolup temizleyemeyince oldu heral diyerek nil komutunu ekledim. şimdilik sorun yok gibi ama denemem yaklaşık 300 fotoğraf üzerinde. bu sorgu sonucu 3-4-5 bin civarında olunca yukarıdaki kod nasıl bir iş yapar. tecrübe ve fikirlerinizi bekliyorum.

kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla