Resim Ekleme.....

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Resim Ekleme.....

Mesaj gönderen Turki »

Kod: Tümünü seç

var
 yol:AnsiString;
begin
 OpenPictureDialog1.Title:='Resim Seç';
 OpenPictureDialog1.Filter:='Bmp Dosyaları|*.bmp|ico Dosyaları|*.ico';
 if OpenPictureDialog1.Execute Then
   begin
    yol:=OpenPictureDialog1.FileName;
    IBTable1.Edit;//değişme moduna al
    DBImage1.Picture.LoadFromFile(yol);
  end;
Yukarıdaki Kod la IB Veritabanına kolayca resim ekliyorum....Ama Data Çok yer kaplıyor...
Bunun Başka yolu Veya Kod 'u yokmu!!!

Not: Lütfen kodları [ code ] [ /code ] tag'ları içinde yazalım :!: rsimsek
heskin35
Üye
Mesajlar: 132
Kayıt: 30 Haz 2004 09:48

Mesaj gönderen heskin35 »

Yer kaplamasının açıklamasını şu şekilde yapayım hocam.
Öncelikle kodlar ile ilgili bir problem yok. Nasıl bir kod ile alırsan al boyut değişmez. Bu tamamen resimin boyutu ile alakalı.
Tabi kayıt esnasında değişik sıkıştırma yöntemleri de var ise bilemiyorum. Birde sanırım veritabanını şişirenler bmp dosyaları onların yerine jpg dosyaları kullanman daha az yer kaplamasını sağlar.
En son heskin35 tarafından 12 May 2005 02:01 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Dosyalar .bmp formatında ise bu normaldır. .jpg formatına çevirirsen o kadar yer tutmaz. Sonuçta resim dosyasının boyutu ile ilgili bir durum :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Mesaj gönderen dtgb »

Hocam nekadar dogrudur yada guvenlidir bilmem ama ben bu konuyla ilgili soyle bi cozum buldum veritabanına resimleri eklemiyorum sadece resmin yolunu kaydediyorum ve o yola gore timage nesnesine resmi yukluyorum sadece tek yapılması gereken resimlerin ismini ve yerinin degismemesi bilmiyorum sizcede uygun mu bu yontem.
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Resim ekleme....

Mesaj gönderen Turki »

Dtgb ...Kardeşim Söylediğin Doğru Resimleri hedefleyip veritabanına resim ekleniyor...Fakat Biz Ağ bilgisayarlarında ayrı ayrı dosyalar tuttuğumuz için problem oluyor Örnek; 1 nolu Resim 5 Nolu terminaldeyse 3. Nolu resim 10 Nolu terminalde kayıtlı oluyor..Yapılan düzeltmelere görede yerleri değişebiliyor..Yani Türkçesi Her Terminalin Ayrı ayrı çalıştığı resimler var ..Arşivleride farklı...Bu yüzden Problem oluyor...Veritabanına kaydetmek daha mantıklı Çünkü Tüm Terminaller Veritabanındaki aynı resmi aynı anda görebiliyor.....Bir 600 Kb. Bmp Resmi Yine örnek; Tif formatında 20 kb. Jpeg Formatında 50 Kb. gif Formatında 60 kb.(Ortalama) yer kaplıyor.. Bu sebeble 100 Kayıtlık veritabanında Bmp formatı aşağı yukarı (Resmin Büyüklüğüne bağlı) 30-40 Mb. Yer kaplıyor..Yani 1000 Kayıta ulaşınca 400 Mb yapar ..Benim korkum kayıt sayısı artıkça Veritabanında ne tür bir problem oluşacak,Yavaşlama,Kitlenme olurmu Benim için bu Önemli,Yedekleme ise önemli değil Dvd Writer'le bu sorun çözülür.. Birde...Eğer Bir DBJpeg ve DBTiff Component'i Bulursam veya Veritabanına kaydedersem Kodlarını,Bu sitede 10 Gün Hayrına Dağıtacağım...
Kullanıcı avatarı
dtgb
Üye
Mesajlar: 175
Kayıt: 07 May 2004 10:02

Mesaj gönderen dtgb »

Evt ag ortamında haklısın
belki soyle cozum olabilir tum resimleri tek bir serverda toplaman ve terminallerin erisebilecegi sabit bir parth vermek. ama resimler uzerinde degisiklik yapıyorsan onda belki problem olabilir.
sltokar
Üye
Mesajlar: 28
Kayıt: 28 Nis 2005 01:02

Mesaj gönderen sltokar »

bende dtgb arkadaşımızın dediğine ufak bir eklenti yaparak farklı bir fikir vermek istiyorum.

Madem her kullanıcıda resimler farklı isimler altında olabiliyor.ozaman veritabanına kaydederken resim yoluyla birlikte kullanıcı isminide kaydettirin,daha sonra kişi çağırıldığında öncelikle dosyadaki kullanıcı adına baksın ve o kullanıcının resimlerinin olduğu klasörden resimi göstersin.
Turki
Üye
Mesajlar: 75
Kayıt: 03 May 2005 08:02

Table ye Resim Ekleme

Mesaj gönderen Turki »

Sltokar Kardeşim Farklı bir fikir vermiş Teşekkürler Onun Üzerinde deneme yapacağım..Fakat Söyle bir durum yine oluşacak Çalıştığımız Resimler Grafik türü resimler bayağı ağır,Bazen İki kişi çalışmak zorunda oluyoruz..Ozaman İki Kullanıcı tanımlamak gerekir..dtgb Kardeşimin dediğide mantıklı fakat Resimleri Hangi kullanıcı ve Kullanıcıların yaptığı Muhakkak bilinmesi lazım....Çünkü Bu konuda Tarih sorgulamasıda yapılıyor..
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Size bir kaç yöntem söyleyeceğim.

Network ortamında eğer Resim directory'sini herkesin görebileceği bir paylaşılmış Directory'e koyarsanız, kullanıcılar (kendi terminallerinde durmadığı için) herkesin görebileceği bir ortamda duran Resimleri görebileceği için paylaşım sorunu yaşamazsınız. Herkes herkesin resmini görebilir. Eğe paylaşılmış directory'e directory açma yetkisi vs. verirseniz insanlar kendi yaptığı resimleri de klasörler altında düzenleyebilirler.

Ayrıca, eğer illa ki DB'de tutacağım diyorsanız, JPG veya BMP olarak resimleri (Doğrudan resim olarak tutmaktansa) onları BLOB olarak yani, bir stream olarak kaydederseniz. Yani dosyayı oraya kaydederseniz ve lazım olduğunda oradan dosyayı söküp, diske yazıp sonra diskten okutarak yaparsanız DB'deki yer kaybı minimize olur. 60 K'lık JPEG'e 600 K yer ayıtrmanıza gerek kalmaz.

Bu yöntem diğer tüm dosyalar için uygulanabilir. Örneğin bir Word Belgesini DB'de tutmak isterseniz, o dosyayı bir Binary File olarak açıp bir TMemoryStream'e alıp sonra DB'ye yine TMemoryStream olarak yazarsınız, gerektiğinde de oradan aynen alıp diske yazıp diskten açarsanız her türlü dosyayı DB'de saklama imkanı elde etmiş olursunuz.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Cevapla