تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف احل هذا الخطاء
#1
يا شباب عندي صورة احفظها من 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


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#2
لا تمرر المتغيرات بشكل مباشر عندما تتعامل مع الصور
مثلا تاخذ نسخة من الصورة الموجودة في البكتشربوكس اولا
ثانبا تتأكد انها لا تساوي nothing
ثم نقوم بتحويل الصورة الي مصفوفة بايت و يجب اغلاق memory Stream المستخدم في تحويل الصورة الي بايت
ثم تحفظها في الداتايبز
الرد }}}
تم الشكر بواسطة: samawi , samawi
#3
(10-05-17, 02:13 AM)silverlight كتب : لا تمرر المتغيرات بشكل مباشر عندما تتعامل مع الصور
مثلا تاخذ نسخة من الصورة الموجودة في البكتشربوكس اولا
ثانبا تتأكد انها لا تساوي nothing
ثم نقوم بتحويل الصورة الي مصفوفة بايت و يجب اغلاق memory Stream المستخدم في تحويل الصورة الي بايت
ثم تحفظها في الداتايبز


شكرا لك اخي 

كيف اغلق memory stream
الرد }}}
تم الشكر بواسطة:
#4
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
الرد }}}
تم الشكر بواسطة: samawi
#5
هذا حل أخر بدون استخدام 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
الرد }}}
تم الشكر بواسطة: samawi , samawi
#6
اشكركم جميعا من اعماق قلبي
يا شباب جربت الكل نفس النتيجة

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

مثلا 1MB
الرد }}}
تم الشكر بواسطة:
#9
أتوقع قاعدة البيانات لديك نوع mdb بتنسيق قديم مثل 97
الرد }}}
تم الشكر بواسطة: samawi
#10
أنا كنت متخيل ان حجم ملفاتك أكبر من 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 
الرد }}}
تم الشكر بواسطة: samawi , samawi



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


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