منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف احل هذا الخطاء
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
يا شباب عندي صورة احفظها من picturebox الى dataset
ويتم الحفظ بشكل طبيعي ولكن عندما اغير الصورة يظهر لي الخطاء الطاهر في الصورة المرفقة 

على فكرة يظهر نفس الخطاء عندما احفظ الى sql server database 



PHP كود :
Dim ms As New MemoryStream
        Dim pic 
As New PictureBox
        pic
.Image PictureBox1.Image
        pic
.Image.Save(msSystem.Drawing.Imaging.ImageFormat.Jpeg)
 
       Dim byt() As Byte ms.ToArray
        ds1
.ventefact.Clear()
 
       ds1.ventefact.Rows.Add(bytLabel18.Textnom_client1adresse1tel1tvaLabel6.TextLabel10.TextDateTimePicker1.Value.Date
لا تمرر المتغيرات بشكل مباشر عندما تتعامل مع الصور
مثلا تاخذ نسخة من الصورة الموجودة في البكتشربوكس اولا
ثانبا تتأكد انها لا تساوي nothing
ثم نقوم بتحويل الصورة الي مصفوفة بايت و يجب اغلاق memory Stream المستخدم في تحويل الصورة الي بايت
ثم تحفظها في الداتايبز
(10-05-17, 02:13 AM)silverlight كتب : [ -> ]لا تمرر المتغيرات بشكل مباشر عندما تتعامل مع الصور
مثلا تاخذ نسخة من الصورة الموجودة في البكتشربوكس اولا
ثانبا تتأكد انها لا تساوي nothing
ثم نقوم بتحويل الصورة الي مصفوفة بايت و يجب اغلاق memory Stream المستخدم في تحويل الصورة الي بايت
ثم تحفظها في الداتايبز


شكرا لك اخي 

كيف اغلق memory stream
PHP كود :
       Dim byt As Byte()
 
       If PictureBox1.Image IsNot Nothing Then
            Using ms 
As New MemoryStream
                PictureBox1
.Image.Save(msPictureBox1.Image.RawFormat)
 
               byt ms.ToArray
            End Using
        End 
If

 
       d1.ventefact.Clear()
 
       ds1.ventefact.Rows.Add(bytLabel18.Textnom_client1adresse1tel1tvaLabel6.TextLabel10.TextDateTimePicker1.Value.Date
هذا حل أخر بدون استخدام memory stream
PHP كود :
       Dim img As Image CType(PictureBox1.ImageImage)
 
       Dim bytes As Byte() = If(img IsNot NothingCType(New ImageConverter().ConvertTo(imgGetType(Byte())), Byte()), New Byte() {}) 

المثفوفة هنا ستعود بمصفوفة بايت فارغة في حالة أن الصورة تساوي nothing
اشكركم جميعا من اعماق قلبي
يا شباب جربت الكل نفس النتيجة

لكن اكتشفت شي لم الاحطة من قبل عند تغيير الصورة اذا كانت كبيرة الحجم يطلع لي هذا الخطاء وان كانت صغيرة الحجم يحفظها طبيعي
كيف اتعامل مع الحجم
جزاكم الله خير الجزاء
أمر طبيعي انه يحصل مشاكل مع الاحجام الضخمة من الصور و السبب هو سرعة قراءة الصورة و تحويله لمصفوفة بايت  
كم حجم الصورة بالكيلو بايت
ابعت لي اكبر صورة عندك
(10-05-17, 04:41 AM)silverlight كتب : [ -> ]أمر طبيعي انه يحصل مشاكل مع الاحجام الضخمة من الصور و السبب هو سرعة قراءة الصورة و تحويله لمصفوفة بايت  
كم حجم الصورة بالكيلو بايت
ابعت لي اكبر صورة عندك

مثلا 1MB
أتوقع قاعدة البيانات لديك نوع mdb بتنسيق قديم مثل 97
أنا كنت متخيل ان حجم ملفاتك أكبر من 1 ميجا بمراحل
انا راجعت الكود مع صورة من النوع gif و حجمها 5 ميجا و الكود شغال تمام
المفروض ان الخطأ الذي يظهر لديك الأن ليس له علاقة بعملية تحويل البيانات
خاصة ان الخطأ الأصلي لديك هو Generic Error in GDI
نصيحتي لك لا تحاول تحويل الصور في memory الخاصة بالكمبيوتر إلا اذا كان لديك الخبرة الكافية للكتابة و القراءة من ذاكرة لكمبيوتر

أم هل هو نفس الخطأ .....؟؟؟؟؟؟
PHP كود :
       Dim img As Image CType(PictureBox1.ImageImage).Clone
 
       Dim bytes As Byte() = Nothing
        bytes 
= If(img IsNot NothingDirectCast(New ImageConverter().ConvertTo(imgGetType(Byte())), Byte()), New Byte() {})
 
       If bytes IsNot Nothing Then
            
' قم بتخزينها هنا
        End If 
الصفحات : 1 2