Şöyle bir ekranım var kitap bilgilerini kaydediyorum.
En sona resim eklemek istiyorum. Bilgileri veritabanına kaydedip,veritabanından datagridviewe aktarmam lazım
Lakin veritabanı olarak SQL kullanılmıyor. Veritabanı olarak biraz komik olabilir ama text dosyası kullanıyorum
Yuklediim bu resimleri ve onlara bağlı pdfleri ise bu ekranda göstermek istiyorum
Bundan kasit nedir?
Cunku screenshot bir kayit etme bicimi degil, icerik.
Resmin icerigini database’de tutmak bir yontem, dosya ismini tutmak baska bir yontem. Dosya ismini ID gibi database kaydina ozel bir veriyle ayni yapip DB’de hic bir sey tutmamak da ucuncu bir yontem.
Komik değil gayet ihtiyaca göre tercih edilebilecek bir metod.
Resimleri nereye yükledik?
Bu da bizi tekrar resimler nerede konusuna tekrar götürür.
Bir resim kaynağınız olmalı. Bu resimleri nereden alacağınıza karar vermelisiniz. Sonrasında imagelist içerisine eklersiniz.
Resimleri, pdf üzerinden çekecekseniz, önce pdf ilk kapak sayfasını görüntüleyip, onu bir yerlerden görüntü haline getirmeniz gerekir. Ama sorunun soruluş şeklinden götüntüyü nasıl elde edeceğiniz konusunda tereddütlerim var.
Dönelim;
Elimizde resimler var ve datagrid’e yerleştireceğiz o kolay.
imageliste eklersem ve programı kapatıp yeniden çalıştıırırsam (imagelisti runtime gibi birşeyde çalıştıracağım için soruyorum) kaydettiğim resimleri yeniden görebilir miyim?
Şimdi imagelist bu resimleri bir yerden alıyor değil mi? Ondan kaynak sormuştum. Evet bir yerlerde alıyorsa çalıştırırken imagelist’inizi bu kaynaktan açılışta tekrar yükleyecek bir yordam kodlayabilirsiniz.
Yani bu resimler bir klasörde duruyor. Siz de programı çalıştırdınız, ilk yapacağınız şey o klasördeki resimleri imageliste runtime yüklemek.
Ha bu dosyalar elinizde yok imagelist ile elinizde bir resim listeniz var.
Gibi bir yöntemle klasörün birine kapanışta aktarırsanız. Artık bir klasörde resimleriniz olacaktır.
Daha marjinal bir yöntem, exe dosyanız içerisinde resource olarak saklamak, fakat bu yöntemde çalışan programınızı modifiye ettiğiniz için antivirüs programları bu davranışları virüs olarak algılayabilir.
En basiti, kodunuz çalışmayı bitirdiğinde yada belirli aralıklarla imagelist içeriğinizi bir klasöre export etmek. Sonra program çalıştırılırken de tekrar import etmek. Bunu bir veri tabanı kullanmak istemediğiniz varsayımı ile yapıyoruz.
Sonuçta bir veri tabanı da resimleri data file olarka tutacak. .bmp veya başka formatta tuttuğunuz dosya da size bir görsel veri olacaktır.
Şöyle bir senaryo yapabilirsiniz.
1- txt dosyasında satır satır base64 verisi olarak resimleri tutun
kaydet, bul, değiştir metodları ile bir algoritma geliştirin.
2- pdf leri klasöre örnek olarak 1.pdf, 2.pdf şeklinde kaydeden bir metod geliştirin.
bu sizin basit anlamda işinizi görecektir.
Ben olsam sqlite bir veritabanı içerisine resimleri ve pdfleri binary formata dönüştürüp kaydederim ve indexine göre datagrid vasıtası ile okurum.
Dilerseniz vaktim olduğunda bu tür bir proıje yazabilirim ufak çaplı.
Saygılarımla.