منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] تغير لون فى صورة - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] تغير لون فى صورة (/showthread.php?tid=670)



تغير لون فى صورة - ali.alfoly - 24-10-13

السلام عليكم
عندى صورة فيها لون واحد فقط
انظر الصورة

اللون الرمادى
وباقى الصورة شفاف بدون لون
اريد استبدال اللون الرمادي بلون اخر


RE: تغير لون فى صورة - hoob computer - 24-10-13

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

تفضل أخي العزيز:










تحياتي


RE: تغير لون فى صورة - ali.alfoly - 24-10-13

جزاك الله خيرا أخي الكريم
ليس هذا ما اقصد

أنا اقصد الصورة موجودة في المشروع في بكتشر بوكس
أريد وضع زر للألوان يقوم بالتعديل الصورة مباشر في المشروع


RE: تغير لون فى صورة - @@أبورائد@@ - 24-10-13

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


تفضل الدالة ImageChannelMixer
كود :
Private Function ImageChannelMixer(ByVal img As Image, ByVal clr As Color) As Image
    Dim b1 As New Bitmap(img.Width * 2, img.Height)
    Using g1 As Graphics = Graphics.FromImage(b1)
        g1.Clear(Color.Transparent)
        g1.DrawImage(img, 0, 0, img.Width, img.Height)
    End Using
    '---------------------------------------
    Dim b2 As New Bitmap(b1)
    Using g2 As Graphics = Graphics.FromImage(b2)
        Dim imageAttributes As New Imaging.ImageAttributes()
        Dim colorMatrixElements As Single()() = {New Single() {1, 0, 0, 0, 0}, _
                                                 New Single() {0, 1, 0, 0, 0}, _
                                                 New Single() {0, 0, 1, 0, 0}, _
                                                 New Single() {0, 0, 0, 1, 0}, _
                                                 New Single() {(clr.R / 255), (clr.G / 255), (clr.B / 255), 0, 1}}
        Dim colorMatrix As New Imaging.ColorMatrix(colorMatrixElements)
        imageAttributes.SetColorMatrix(colorMatrix, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Default)
        g2.DrawImage(b2, New Rectangle(img.Width, 0, b2.Width, b2.Height), _
                            0, 0, b2.Width, b2.Height, _
                            GraphicsUnit.Pixel, imageAttributes)
    End Using
    '---------------------------------------
    Dim b3 As New Bitmap(img.Width, img.Height)
    Using grp = Graphics.FromImage(b3)
        grp.DrawImage(b2, New Rectangle(0, 0, img.Width, img.Height), New Rectangle(img.Width, 0, img.Width, img.Height), GraphicsUnit.Pixel)
    End Using
    '---------------------------------------
    Return b3
End Function

طريقة استخدامها
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    PictureBox2.Image = ImageChannelMixer(PictureBox1.Image, Color.Blue)
End Sub


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


RE: تغير لون فى صورة - ali.alfoly - 24-10-13

السلام عليكم ورحمة الله
حبيبي أبو رائد
والله لا اجد ما أقول فعلا
جزاك الله خيرا

أسئل الله تعالى أن يبارك فيك
وينفعك بعلمك في الدنيا والأخرة