الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ستبدال الاون من داخل صوره

بدأه majado2 في 12 يناير 2010 · 7 رد · 642 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

كيف جالكم اخواني

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

كيف اقوم بعمل ذالك

اذا كان هناك كود ياليت تساعدوني الله يعطيكم العافيه

448e929608.jpg
#2

بعد تحويل كائن الصورة إلى كائن من فئة Bitmap, تستطيع الحصول على قيمة لون بيكسل عبر المناداة على الدالة GetPixel للكائن و يمكنك تحديد قيمة لون بيكسل عبر المناداة على الدالة SetPixel للكائن من فئة Bitmap.

1
#3
محمد رضى كتب:

بعد تحويل كائن الصورة إلى كائن من فئة Bitmap, تستطيع الحصول على قيمة لون بيكسل عبر المناداة على الدالة GetPixel للكائن و يمكنك تحديد قيمة لون بيكسل عبر المناداة على الدالة SetPixel للكائن من فئة Bitmap.

اخوي اشرح . لي .. عطني مثال وانا سوف اطبق بأذن الله تعالى جزاك الله الف خير

448e929608.jpg
#4

الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها 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
#5
محمد رضى كتب:

الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها 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

جزاك الله عني الف خير اخي الكريم لم افهمها جيدا لكن سوف احاول وشكرا لك

448e929608.jpg
#6
محمد رضى كتب:

الكود التالي يقوم بتغيير كل البيكسلات التي قيمتها 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 ما اقدر اسوي عليها هالحركه ؟؟

448e929608.jpg
#7

هذا الكود يقوم بحل مشكلة الصور بصيغة 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
#8
محمد رضى كتب:

هذا الكود يقوم بحل مشكلة الصور بصيغة 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

مشكور يعطيك العافيه ...

448e929608.jpg

مواضيع مشابهة