تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لتحويل صورة ملونة إلى مستوى الرمادي باستخدام مصفوفة التحويل
#1
كاتب الموضوع : Boutemine Oualid

بسم الله الرحمن الرحيم

هذه الشفرة وجدتها في المنتدى و أحببت أن أضعها



كود :
Public Class frmMain
Private Sub btnOpenColorImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpenColorImage.Click
Dim OpenFileDialog As OpenFileDialog = New OpenFileDialog()
Dim imagFilter As String = "Fichiers d'images (*.jpg,*.jpeg,*.bmp,*.gif,*.png)|*.BMP;*.PNG;*.JPG;*.JPEG;*.GIF"
OpenFileDialog.Filter = imagFilter
OpenFileDialog.RestoreDirectory = True
If OpenFileDialog.ShowDialog() = DialogResult.OK Then
Dim img As Image = Image.FromFile(OpenFileDialog.FileName)
pbxColoredImage.Image = img.GetThumbnailImage(pbxColoredImage.Width, pbxColoredImage.Height, Nothing, Nothing)
End If
End Sub
Private Sub btnConvertToGray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvertToGray.Click
If pbxColoredImage.Image Is Nothing Then
Dim msgString As String = "Veuillez ouvrir un fichier d'image d'abord svp"
Dim msgCaption As String = "Erreur"
MessageBox.Show(msgString, msgCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
Dim grayImage As Image = pbxColoredImage.Image
Dim bm As Bitmap = New Bitmap(grayImage.Width, grayImage.Height)
Dim g As Graphics = Graphics.FromImage(bm)
'Creation de la matrice contenant les poids de conversion
'0.3 -> Poid du constituant R (Rouge)de la couleur des pixels
'0.59 -> Poid du constituant G (Vert)
'0.11 -> Poid du constituant B (Bleu)
Dim cm As System.Drawing.Imaging.ColorMatrix = New System.Drawing.Imaging.ColorMatrix(New Single()() _
{New Single() {0.3, 0.3, 0.3, 0, 0}, _
New Single() {0.59, 0.59, 0.59, 0, 0}, _
New Single() {0.11, 0.11, 0.11, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}})
Dim ia As System.Drawing.Imaging.ImageAttributes = New System.Drawing.Imaging.ImageAttributes()
ia.SetColorMatrix(cm)
g.DrawImage(grayImage, New Rectangle(0, 0, grayImage.Width, _
grayImage.Height), 0, 0, grayImage.Width, _
grayImage.Height, GraphicsUnit.Pixel, ia)
g.Dispose()
pbxGrayScaleImage.Image = bm.GetThumbnailImage(pbxGrayScaleImage.Width, pbxGrayScaleImage.Height, Nothing, Nothing)
End If
End Sub
Private Sub btnSaveGrayImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveGrayImage.Click
Dim SaveFileDialog As New SaveFileDialog()
SaveFileDialog.Filter = "Fichiers d'images (*.BMP, *.JPG, *.GIF)|*.bmp;*.jpg;*.gif"
If SaveFileDialog.ShowDialog() = DialogResult.OK Then
If Not pbxColoredImage.Image Is Nothing Then
pbxGrayScaleImage.Image.Save(SaveFileDialog.FileName)
End If
End If
End Sub
End Class
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  البرنامج بعد وضعه في صورة exe لا يتعامل مع قاعدة البيانات محمد خلف زكي 0 93 04-08-16, 05:10 AM
آخر رد: محمد خلف زكي
  كيفية عمل صورة - مدورة - Rouded PictureBox ! RaggiTech 0 735 17-10-12, 09:55 PM
آخر رد: RaggiTech
  تدوير صورة حول مركزها باستخدام gdi+ RaggiTech 0 628 17-10-12, 09:30 PM
آخر رد: RaggiTech
  (لعبة الذاكرة Memory Game) لتفهم التعامل مع مصفوفة الادوات RaggiTech 0 562 17-10-12, 09:05 PM
آخر رد: RaggiTech
  نسخ صورة النافذه المفتوحه Screen capture RaggiTech 0 360 17-10-12, 08:27 PM
آخر رد: RaggiTech
  تعلم كيف تفتح صورة من رابط داخل ال Picture box RaggiTech 0 470 17-10-12, 08:21 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 394 17-10-12, 07:24 PM
آخر رد: RaggiTech
  مثال لجملة update باستخدام متغير يحمل عبارة sql RaggiTech 0 367 17-10-12, 07:20 PM
آخر رد: RaggiTech
  كيفية رسم صورة متحركة على الفورم بدون تايمر RaggiTech 0 551 17-10-12, 07:11 PM
آخر رد: RaggiTech
  كيف تشكل الفورم طبقا لأى صورة تريدها بدون اى عناء اعتمادا على صورة لديك RaggiTech 0 399 17-10-12, 07:09 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم