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

نسخة كاملة : مساعدة بالتحقق من صورة موجودة في Picturebox
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
مرحبا احناج كود لتفحص الPicturebox واذا كانت تحتوي مثلا على صورةباسم Pic1 و هذه الصورة موجودة بالريسورس قالنتيجة ايجابية
يعني
 if picturebox1.image = myresourse.pic1 then
code
end if
عليك بتحويل الصورتان الي مصفوفة Byte ثم تقارن بين المصفوفتان
شكرا لك لسرعة الرد .. ساحاول ولكن في هذا الوقت هل بامكانك اعطائي الكود اذا لم انجح بتحويل الصورة
هذا اسرع كود علي الاطلاق لتحويل الصورة الي مصفوفة Byte


PHP كود :
   Friend Function BitmapToBytes(bitmap As Drawing.Bitmap) As Byte()
 
       Dim data As System.Drawing.Imaging.BitmapData bitmap.LockBits(New System.Drawing.Rectangle(00bitmap.Widthbitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnlySystem.Drawing.Imaging.PixelFormat.Format32bppArgb)
 
       Dim buffer As Byte() = New Byte(data.Stride data.Height 1) {}
 
       System.Runtime.InteropServices.Marshal.Copy(data.Scan0buffer0buffer.Length)
 
       bitmap.UnlockBits(data)
 
       Return buffer
    End 
Function 

وهذا الكود لمقارنة المصفوفتان
PHP كود :
  Friend Function IsEqual(a() As Byteb() As Byte) As Boolean
        Dim length 
As Integer a.Length Xor b.Length
        Dim i 
As Integer 0
        While i 
a.Length AndAlso i b.Length
            length 
length Or a(i) Xor b(i)
 
           i += 1
        End 
While
 
       Return length 0
    End 
Function 
الكود التالي يوضح كيفية استخدام الدالتان معا لمقارنة الصورتان

PHP كود :
       Dim bmp1 As Bitmap CType(My.Resources.ResourceManager.GetObject("اسم الصورة"), Bitmap)
 
       Dim buffer1 As Byte() = BitmapToBytes(bmp1)
 
       Dim bmp2 As Bitmap picturebox1.image
        Dim buffer2 
As Byte() = BitmapToBytes(bmp2)
 
       IF IsEqual(buffer1buffer2Then
        
' do somethign if both images are equals
        Else
        ' 
do somethign if both images are not equals
        End 
IF