Maison >développement back-end >C++ >Comment convertir des images en niveaux de gris en C# ?
Explication détaillée de la conversion des niveaux de gris d'image C#
La conversion d'images au format niveaux de gris est une tâche courante de traitement d'image. Cet article explique comment utiliser l'énumération System.Drawing.Imaging.PixelFormat
pour implémenter la conversion en niveaux de gris en C#.
Format en niveaux de gris de pixels 16 bits
Si vous avez besoin d'une image en niveaux de gris avec des pixels de 16 bits, vous pouvez utiliser le constructeur suivant :
<code class="language-csharp">Bitmap grayScaleBP = new System.Drawing.Bitmap(2, 2, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);</code>
Conversion des niveaux de gris de l'image
Pour convertir une image existante (c) en une image en niveaux de gris (d), vous pouvez utiliser le code suivant :
<code class="language-csharp">Bitmap d; int x, y; // 循环遍历图像像素并将其颜色重置为灰度 for (x = 0; x < ...; x++) { for (y = 0; y < ...; y++) { // 灰度转换逻辑... } }</code>
(Le code de conversion spécifique en niveaux de gris dans le corps de la boucle est omis ici car le texte original ne fournit pas le contenu complet du corps de la boucle)
Méthode de conversion des niveaux de gris plus rapide
Ce qui suit est une méthode plus efficace de conversion des niveaux de gris d'une image :
<code class="language-csharp">public static Bitmap MakeGrayscale3(Bitmap original) { Bitmap newBitmap = new Bitmap(original.Width, original.Height); using (Graphics g = Graphics.FromImage(newBitmap)) { // 创建灰度ColorMatrix ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {.3f, .3f, .3f, 0, 0}, new float[] {.59f, .59f, .59f, 0, 0}, new float[] {.11f, .11f, .11f, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); // 使用灰度ColorMatrix绘制原始图像 g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height), 0, 0, original.Width, original.Height, GraphicsUnit.Pixel, new ImageAttributes { ColorMatrix = colorMatrix }); } return newBitmap; }</code>
Cette méthode utilise ColorMatrix
pour effectuer une conversion en niveaux de gris, améliorant ainsi les performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!