كيف يمكن عمل قاعدة بيانات تحتوي على صور و البحث بالصور
#1
السلام عليكم و رحمة الله
ما هي احسن قاعدة بيانات يمكن تسجيل الصور بها بحيث يمكنها استعاب كم هائل من الصور (3000 صورة و اكثر حجم 800*600) ويسهل البحث في معطياتها

للتوضيح اعمل على برمجة البوم صور لافلام قمت بتحميلها

بحيث ان الالبوم يمكنني من البحث عن الفيلم بثلاث خصائص
اولها رقم المجلد ( توضع 6 افلام في مجلد واحد مرقم بالترتيب).وعند البحث برقم المجلد تظهر صور اغلفة السة افلام مع عناوينها.
ثانيها عنوان الفيلم بحيث عد البحث به يظهر رقم المجلد و صورة الفيلم
وثالثها صورة غلاف الفيلم وعند البحث بها يظهر عنوان الفيلم و رقم المجلد
الرد
#2
انصحك باستخدام الملفات مع الصور وربطها بقاعده البيانات

حيث
تقوم بانشاء ملف يدعى MASTERE
وتقوم بوضع الصور فيه وتقوم بتسميه الصور حسب ارقام التسجيلات مثال
رقم الطالب محمد علي هو clé=10012
يعني لازم تسمي صورته الشخصيه الموضوعه في الملف IMAGES بنفس الرقم 10012
لنفرض ان ملف الصور موجود في المسار التالي
'd:\hpp\mastere

.وهنا طبق الامر التالي :
كود :
procedure TForm1.ADOTable1AfterScroll(DataSet: TDataSet); begin if ADOTable1.RecordCount>0 then begin if FileExists('d:\hpp\mastere\'+ ADOTable1cl .AsString+'.bmp') then begin Image1.Picture.LoadFromFile('d:\hpp\mastere\'+ADOTable1.FieldbyName('clé').AsString+'.bmp') ; end else begin Image1.Picture.LoadFromFile('d:\hpp\mastere\vide.bmp') ; end; end; end;
ملاحظه : يجب انشاء الملف VIDE.BMP في ملف الصور ليقوم بعرضه في حاله عدم وجود الصوره الموافقه

وهكذا تكون قد حققت عملا طيبا دون تعبئه قاعده البيانات بالصور وقد تتسبب في ثقلها وصعوه التعامل معها في حاله امتلائها
الرد
#3
مبدئيا فحجم قاعدة البيانات ليس كبير جدا (لن تتعدى 6 جيجا)
اذا يمكنك استخدام أي قاعدة بيانات
بالنسبة لليحث بالصور فأفضل طريقة هي تحويل الصورة الى بايتات ثم مقارنة البايتات مع الصورة المخزنة في قاعدة البيانات رغم انها ستأخذ وقت (طول تنفيذ) + استهلاك للذاكرة
الرد
#4
بالنسبة للنقطة الثالثة افضل طريق ان تأخذ md5 او اي بصمة للصورة و تسجيلها في قاعدة البيانات و عند البحث تأخذ مرة اخرى بصمة الصور و تجري البحث
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#5
s.fateh كتب :افضل طريق ان تأخذ md5 او اي بصمة للصورة و تسجيلها في قاعدة البيانات
نعم حلك مقبول وجد عملي لكن هذا اذا فرضنا أن الصورة الجديدة هي نفسها الموجودة في قاعدة البيانات (لم تتغير حتى ببيكسل واحد )
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم