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

نسخة كاملة : سؤالي عن a generic error occurred in gdi+
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم يا مجتمع الفيجوال بيسك 
عندي PictureBox تأخذ في الصورة من السكانير شغالة 100% بدون مشاكل تظهر الصورة على PictureBox 
و لكن عند الحفظ او الإظهار في الريبورت تظهر لي هذه الرسالة 
a generic error occurred in gdi+ 

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



الكود المستخدم لحفظ الصورة 
كود :
PictureBox1.Image.Save(Application.StartupPath & "\Imgs\" & txtjobno.Text & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)



الكود المستخدم لتمرير الصورة للريبورت 
كود :
Dim ms As New System.IO.MemoryStream
           Dim byt() As Byte = ms.ToArray
           PictureBox1.Image = New Bitmap(Image.FromStream(ms))
           Dim bmpImage As New Bitmap(PictureBox1.Image)
           bmpImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
           byt = ms.ToArray()
           ms.Close()
لله الحمد انحلت معي القصة ..
سأترك هنا الحل لعل غيري يستفيد منه ولا نريد إلا الدعاء 
المشكلة كانت في الكتابة على نفس الملف .. بينما إذا كان صورة جديدة بإسم جديد فإن الكود يشتغل تمام 

الحل هو بمجرد أن أقوم بإنشاء صورة نقطية Bitmap من صورة ، فإنني أتخلص من الصورة النقطية  Bitmap الأصلية 
ومن ثم فأنا قادر على الكتابة فوق نفس الملف بالصورة النقطية المحدثة.


كود :
Dim oBitmap As Bitmap
oBitmap = New Bitmap("c:\\example.jpg")
Dim oGraphic As Graphics
' Here create a new bitmap object of the same height and width of the image.
Dim bmpNew As Bitmap = New Bitmap(oBitmap.Width, oBitmap.Height)
oGraphic = Graphics.FromImage(bmpNew)
oGraphic.DrawImage(oBitmap, New Rectangle(0, 0, _
bmpNew.Width, bmpNew.Height), 0, 0, oBitmap.Width, _
oBitmap.Height, GraphicsUnit.Pixel)
' Release the lock on the image file. Of course,
' image from the image file is existing in Graphics object
oBitmap.Dispose()
oBitmap = bmpNew

Dim oBrush As New SolidBrush(Color.Black)
Dim ofont As New Font("Arial", 8 )
oGraphic.DrawString("Some text to write", ofont, oBrush, 10, 10)
oGraphic.Dispose()
ofont.Dispose()
oBrush.Dispose()
oBitmap.Save("c:\\example.jpg", ImageFormat.Jpe



ارجو ان اكون قد وفقت في شرح الحل
السلام عليكم ورحمة الله وبركاته
الاخ الطيب أحمد الورفلي
بارك الله فيك ولك وجزاك أحسن الجزاء
هكذا يجب ان نكون نعطي اكثر مما نأخذ
شكرا لك من كل قلبي
(01-02-22, 02:52 PM)ابراهيم ايبو كتب : [ -> ]السلام عليكم ورحمة الله وبركاته
الاخ الطيب أحمد الورفلي
بارك الله فيك ولك وجزاك أحسن الجزاء
هكذا يجب ان نكون نعطي اكثر مما نأخذ
شكرا لك من كل قلبي

انتم من تستحقون الشكر لجعل هذه المساحة متوفرة للجميع ... 
نسأل الله ان يكون علمكم و علمنا من العلم النافع عند الله 
ننفع به غيرنا و ننتفع منهم 
فائق التقدير و الإحترام لحضرتكم