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

بعد تحويل كائن الصورة إلى كائن من فئة Bitmap, تستطيع الحصول على قيمة لون بيكسل عبر المناداة على الدالة GetPixel للكائن و يمكنك تحديد قيمة لون بيكسل عبر المناداة على الدالة SetPixel للكائن من فئة Bitmap.
محمد رضى كتب:بعد تحويل كائن الصورة إلى كائن من فئة Bitmap, تستطيع الحصول على قيمة لون بيكسل عبر المناداة على الدالة GetPixel للكائن و يمكنك تحديد قيمة لون بيكسل عبر المناداة على الدالة SetPixel للكائن من فئة Bitmap.
اخوي اشرح . لي .. عطني مثال وانا سوف اطبق بأذن الله تعالى جزاك الله الف خير

الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها Color.Black إلى بيكسل أحمر اللون Color.Red على صورة محددة على الخاصية Image لمربع PictureBox
' الحصول على الصورة من مربع الصورة
Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap).Clone()
' استعراض طولي
For y As Integer = 0 To bmp.Height - 1
' استعراض عرضي
For x As Integer = 0 To bmp.Width - 1
' إذا كانت قيمة البيكسل هي المراد تغييرها مع تجاهل القيمة alpha
If (bmp.GetPixel(x, y).ToArgb() And &HFFFFFF00) = Color.Black.ToArgb() Then
' تغيير قيمة البيكسل
bmp.SetPixel(x, y, Color.Red)
End If
Next
Next
' حذف الصورة القديمة إذا كانت موجودة
If Not PictureBox1.Image Is Nothing Then PictureBox1.Image.Dispose()
' تحديد الصورة المعدلة
PictureBox1.Image = bmpمحمد رضى كتب:الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها Color.Black إلى بيكسل أحمر اللون Color.Red على صورة محددة على الخاصية Image لمربع PictureBox
' الحصول على الصورة من مربع الصورة Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap).Clone() ' استعراض طولي For y As Integer = 0 To bmp.Height - 1 ' استعراض عرضي For x As Integer = 0 To bmp.Width - 1 ' إذا كانت قيمة البيكسل هي المراد تغييرها مع تجاهل القيمة alpha If (bmp.GetPixel(x, y).ToArgb() And &HFFFFFF00) = Color.Black.ToArgb() Then ' تغيير قيمة البيكسل bmp.SetPixel(x, y, Color.Red) End If Next Next ' حذف الصورة القديمة إذا كانت موجودة If Not PictureBox1.Image Is Nothing Then PictureBox1.Image.Dispose() ' تحديد الصورة المعدلة PictureBox1.Image = bmp
جزاك الله عني الف خير اخي الكريم لم افهمها جيدا لكن سوف احاول وشكرا لك

محمد رضى كتب:الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها Color.Black إلى بيكسل أحمر اللون Color.Red على صورة محددة على الخاصية Image لمربع PictureBox
' الحصول على الصورة من مربع الصورة Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap).Clone() ' استعراض طولي For y As Integer = 0 To bmp.Height - 1 ' استعراض عرضي For x As Integer = 0 To bmp.Width - 1 ' إذا كانت قيمة البيكسل هي المراد تغييرها مع تجاهل القيمة alpha If (bmp.GetPixel(x, y).ToArgb() And &HFFFFFF00) = Color.Black.ToArgb() Then ' تغيير قيمة البيكسل bmp.SetPixel(x, y, Color.Red) End If Next Next ' حذف الصورة القديمة إذا كانت موجودة If Not PictureBox1.Image Is Nothing Then PictureBox1.Image.Dispose() ' تحديد الصورة المعدلة PictureBox1.Image = bmp
يعني صيغة الــ GIF ما اقدر اسوي عليها هالحركه ؟؟

هذا الكود يقوم بحل مشكلة الصور بصيغة GIF :
' الحصول على الصورة من مربع الصورة
Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap).Clone()
' تحويل صيغة الصورة في حالة ما كانت GIF
Dim bmpHelp As Bitmap = Image.FromHbitmap(bmp.GetHbitmap)
bmp.Dispose()
bmp = bmpHelp
' استعراض طولي
For y As Integer = 0 To bmp.Height - 1
' استعراض عرضي
For x As Integer = 0 To bmp.Width - 1
' إذا كانت قيمة البيكسل هي المراد تغييرها
If (bmp.GetPixel(x, y).ToArgb() And &HFFFFFF00) = Color.Black.ToArgb() Then
' تغيير قيمة البيكسل
bmp.SetPixel(x, y, Color.Red)
End If
Next
Next
' حذف الصورة القديمة إذا كانت موجودة
If Not PictureBox1.Image Is Nothing Then PictureBox1.Image.Dispose()
' تحديد الصورة المعدلة
PictureBox1.Image = bmpمحمد رضى كتب:هذا الكود يقوم بحل مشكلة الصور بصيغة GIF :
' الحصول على الصورة من مربع الصورة Dim bmp As Bitmap = CType(PictureBox1.Image, Bitmap).Clone() ' تحويل صيغة الصورة في حالة ما كانت GIF Dim bmpHelp As Bitmap = Image.FromHbitmap(bmp.GetHbitmap) bmp.Dispose() bmp = bmpHelp ' استعراض طولي For y As Integer = 0 To bmp.Height - 1 ' استعراض عرضي For x As Integer = 0 To bmp.Width - 1 ' إذا كانت قيمة البيكسل هي المراد تغييرها If (bmp.GetPixel(x, y).ToArgb() And &HFFFFFF00) = Color.Black.ToArgb() Then ' تغيير قيمة البيكسل bmp.SetPixel(x, y, Color.Red) End If Next Next ' حذف الصورة القديمة إذا كانت موجودة If Not PictureBox1.Image Is Nothing Then PictureBox1.Image.Dispose() ' تحديد الصورة المعدلة PictureBox1.Image = bmp
مشكور يعطيك العافيه ...
