03-06-14, 01:27 AM
يمكن إكتشاف هل الصورة المستخدمة معكوسة باستخدام BitmapDat Class
حيث نتأكد أن قيمة Stride تكون أكبر من صفر
و لمزيد من التفاصيل عن الكلاس BitmapData يمكنك مراجعة اللينك التالي
BitmapData Class
الدالة التالية تسترجع قيمة عبارة عن Boolean
لو كانت القيمة المسترجعة من الدالة تساوي True
إذن الصورة تكون معكوسة في تلك الحالة
و أيضا العكس صحيح لو كانت القيمة المسترجعة من الدالة تساوي False
إذن الصورة في وضعها الطبيعي
الكود التالي يوضح شكل الدالة
الكود التالي يوضح كيف نرسم الصورة و هي معكوسة
1- حيث نقوم بتعريف صورة كما نشاء - في المثال هنا قمت بإضافة صورة الي Resources المشروع
2- ثم علينا أن نمرر تلك الصورة الي الدالة لكي نتأكد هل الصورة معكوسة أم لا
3- ثم نقوم برسمها علي سطح الفورم في الحدث Paint الخاص ب الفورم
أتمني إن الكود يكون مفيدا لكم
حيث نتأكد أن قيمة Stride تكون أكبر من صفر
و لمزيد من التفاصيل عن الكلاس BitmapData يمكنك مراجعة اللينك التالي
BitmapData Class
الدالة التالية تسترجع قيمة عبارة عن Boolean
لو كانت القيمة المسترجعة من الدالة تساوي True
إذن الصورة تكون معكوسة في تلك الحالة
و أيضا العكس صحيح لو كانت القيمة المسترجعة من الدالة تساوي False
إذن الصورة في وضعها الطبيعي
الكود التالي يوضح شكل الدالة
كود :
''' <summary>
''' Check image is upside down
''' </summary>
''' <param name="originalBitmap">bitmap</param>
''' <returns>True, if the image is upside dwn</returns>
''' <remarks></remarks>
Private Function IsUpSideDownBitmap(originalBitmap As Bitmap) As Boolean
Dim bmp As Bitmap = CType(originalBitmap.Clone(), Bitmap)
Dim rect As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height)
Dim bmpData As Imaging.BitmapData = bmp.LockBits(rect, Imaging.ImageLockMode.ReadOnly, Imaging.PixelFormat.Format32bppArgb)
Return originalBitmap IsNot Nothing AndAlso bmpData.Stride > 0
End Function
الكود التالي يوضح كيف نرسم الصورة و هي معكوسة
1- حيث نقوم بتعريف صورة كما نشاء - في المثال هنا قمت بإضافة صورة الي Resources المشروع
2- ثم علينا أن نمرر تلك الصورة الي الدالة لكي نتأكد هل الصورة معكوسة أم لا
3- ثم نقوم برسمها علي سطح الفورم في الحدث Paint الخاص ب الفورم
كود :
Dim bmp As New Bitmap(My.Resources._29322)
' example 1 : check if image is upside down and draw the image
' check image, the function shall return true if the image is upside down
If IsUpSideDownBitmap(bmp) Then
' do something like rotate the image or do not draw it
' the image will drawn becuase the function return True
e.Graphics.DrawImage(bmp, 0, 0)
End If
أتمني إن الكود يكون مفيدا لكم