سمعت ان Ocx يقوم بضغط الصورة ولكن ....
#1
تمت المشاركة 15 July 2008 - 10:19 PM
زكاة العلم نشــرة
أقوم حاليا بعمل برنامج قواعد بيانات وصادفتني مشكلة بسحب الصورة من السكنر الى الـ Picturebox تلقائيا ومن غير تدخل من المستخدم ، والحمد لله قمت بحل هذة المشكلة ولكن المشكلة التي تصادفني الآن هي أن حجم الصورة الشخصية والمستندات يكون حجمها مرتفع مما يسبب في ثقل قاعده البيانات وتأخذ مساحه تخزينية كبيره على المدى الطويل.
سمعت ان OCX يقوم بضغط الصورة ولكن لا اعرف كيف السبيل إلية وكيف يستخدم !!
أريد من لديه خبرة عن ضغط الصورة ألأ يتردد في مساعدتي ( أسأل الله له الجنة )
أرجو المساعدة
شكرا لكم
#2
تمت المشاركة 17 July 2008 - 07:50 AM
لقد أثلج صدري عندما رأيت 11 رد على الموضوع ، وقلت يا سلااااااااام
يا أخواني هذة المناقشات لا تأتي بخير أبدا واتمنى من المشرفين معالجة الموضوع بالطريقة السليمة ..
اما بالنسبة للسورس كود فالبرنامج لم يزل تحت الانشاء والتجربة ولم يكتمل بعد .
تحياتي
#3
تمت المشاركة 17 July 2008 - 01:45 PM
#4
تمت المشاركة 20 July 2008 - 11:20 AM
طلال حامد على Jul 17 2008, 07:50 AM قال:
لقد أثلج صدري عندما رأيت 11 رد على الموضوع ، وقلت يا سلااااااااام
يا أخواني هذة المناقشات لا تأتي بخير أبدا واتمنى من المشرفين معالجة الموضوع بالطريقة السليمة ..
اما بالنسبة للسورس كود فالبرنامج لم يزل تحت الانشاء والتجربة ولم يكتمل بعد .
تحياتي
للمعلومية فقط: سبب الردود السلبية هي إدراجك لعبارة "زكاة العلم نشــره" بشكل كبير. العديد من الأعضاء يتضايقون من هذا الأسلوب لأنه يمكن تفسيره على أنه إرغام على المساعدة و إعطاء طلب المساعدة صبغة دينية. مع تحياتي
#5
تمت المشاركة 20 July 2008 - 03:16 PM
ولم اعتقد فى وجودها يوما فطريقة تخزين الصور على الكمبيوتر تعتمد على تنسيق الملف وأقل مساحة يمكن ان تكون بأعلى درجة نقاء للصورة مع أقل مساحة ممكنة هى تنسيقات الـ (JPG) وكلما قمت بتقليل جودة الصورة كلما قلت مساحتها وكلما قللت من مساحة الصورة ــ طولها وعرضهاــ كلما قلت مساحتها أما ما تتكلم عنه فقد يكون برنامج صغيير يقوم بتغير نسب الطول والعرض وبالتالى تقلل من حجمها
كما اننى لا انصحك بضغط الصور قبل حفظها لانه ببساطة شديدة سيتطلب ذلك فكها قبل عرضها مما سيقلل كفائة برنامجك وسرعة عمله على جهاز المستخدم
اما بخصوص تغيير مساحة الصورة أى طولها وعرضها دون تغيير جودتها والذى يقلل من مساحتها التخزينية فهو بسيط جدا ويمكنك كتابتة بنفسك أو نسخه إلى برنامجك مباشرة واستخدامه بعد فهم اكواده التى هى فى غاية البساطة واعتقد انها لا تحتاج لشرح والكود كالتالى :
Dim SoSo As System.Drawing.Image
Try
SoSo = Image.FromFile("C:\001.bmp")
Dim bm As New Bitmap(SoSo)
'قم مربع الصورة اى حاصل ضرب الطول فى العرض وقمت بالضرب فيه حتى تكون الصورة بحجم ورقة ااايه فور ويمكنك تغييره كما ترغب
Dim x As Int32 = (bm.Width / (bm.Width + bm.Height)) * (1700) 'variable for new width size
Dim y As Int32 = (bm.Height / (bm.Width + bm.Height)) * (1700) 'variable for new height size
Dim width As Integer = Val(x) 'image width.
Dim height As Integer = Val(y) 'image height
Dim thumb As New Bitmap(width, height)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, width, height), New Rectangle(0, 0, bm.Width, _
bm.Height), GraphicsUnit.Pixel)
g.Dispose()
thumb.Save("C:\001.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
bm.Dispose()
thumb.Dispose()
Catch ex As Exception
LMsg.Text = ex.Message
End Try
#6
تمت المشاركة 24 July 2008 - 01:21 AM
اخي العزيز : System Down كلامك صحيح .. وأنا أكره هذا الاسلوب أيضا ولكن لانني في موقف محرج جدا ( آسف للغاية الشديدة
اخي العزيز Ghader مشكور على الكود الرائع وأنا حاليا أستخدم نفس الطريقة ولكن بصيغة أخرى ، ولكن أنا كنت أسأل عن ظغط الصورة ولكن إنسى الأمر ...
بكل صراحة لقد إنتهيت من عمل نموذج به حفظ الصورة في قاعده البيانات مع تقليل حجمها وامكانية البحث واستخراج البيانات مرة اخرى وإمكانية جلب الصورة من الاسكنر الى إداة الـ Picturebox من غير تدخل من المستخدم وإمكانية طباعه الصورة .
هذا المثال مستخدم مع قاعده بيانات أكسس 2003 ، والمثال مضبوط 100% ويعمل بالشكل السليم ( مع ملاحظت انني لم أقوم بإصطياد الاخطاء حتى الآن .. لأنني اريد أن أيقن ان المثال يعمل بالشكل السليم أولا )
الجداول المستخدمة بقاعدة البيانات هي :
t1 وهو يقوم بحفظ رقم الموظف واسمة
t2 وهو يقوم بحفظ صورة الموظف ورقمة
العلاقة بين الجدولين هي (One to One )
قمت بفصل الصورة من جدول t1 الاول ووضعها بجدول t2 لكي لا يحدث بطي بعمليات البحث .
المشكلة هنا ... انني لا اريد إستخدام المثال بالاكسس بل اريده إستخدامة مع SQL SERVER 2000 ..
لقد قمت بتصميم قاعده بيانات بال SQL SERVER 2000 لكن كانت النتيجة كالآتي :
يقوم بحفظ البيانات بجدول t1 ولا يحفظ الصورة بجدول t2
أخواني لقد ارفقة المثال لكي تعم الفائدة للجميع ويستفيددوا الاخوان من هذة الاكواد .. واتمنى من ذوي الخبرة أن يسعفونا ويعطونا مشكلة عدم حفظ البيانات بالاس كيو ال سرفر
ادخلت ثلاث موظفين بقاعدة البيانات وارقامهم كالتالي يمكنك البحث ورؤية النتيجة
الموظف الأول رقمه (1)
الموظف الثاني رقمة (2)
الموظف الثالث رقمة (3)
تحياتي
الملفات المرفقة
-
testpicture.rar (184.82K)
عدد مرات التحميل: 61
#7
تمت المشاركة 24 July 2008 - 12:35 PM
SaveDatabase(Application.StartupPath & "\photo\" & TextBox1.Text & ".jpg")
ده مينفعش مع الاس كيو ال لان الاس كيو ال هى داتا بيز معرفة للويندوز لا يتم التعامل معها عن طريق الباس
استخدم امر (insert) عادى جداً ذى امر حفظ البيانات النصية والرقمية وبدلاً من اخذ الداتا من تكست قم باخد الصورة من البكتشر بوكس
نصيحة من اخوك لا تقم بحفظ الصور او اى ملفات داخل قاعدة البيانات ولكن قم بانشاء مجلد بجوار قاعدة البيانات وقم بحفظ دليل الصورة فى قاعدة البيانات لسببين
الاول علشان قاعدة البيانات متتقلش معاك فى الاستعلامات
الثانى علشان قاعدة البيانات يبقى سهل اصلاحها لو حصلها دامج مع العلم انها صعب يحصلها دامج لو قمت بحفظ الملفات خارجها
والله الموفق
#8
تمت المشاركة 24 July 2008 - 08:18 PM
تصدق سويت اللي قلت عليه من الاول لكن يعطيني خطأ .. مو راضي يقبل صيغة البكتشر بوكس في جملة الانسيرت
#9
تمت المشاركة 26 July 2008 - 08:48 AM
تحياتى لك وللجميع
تم تعديل هذه المشاركة بواسطة Ghader: 26 July 2008 - 08:49 AM


تسجيل الدخول
التسجيل
المساعدة

ارجع للأعلى
متعدد الإقتباسات

