Maison > développement back-end > C++ > Comment convertir une image en niveaux de gris 16 bits en C# ?

Comment convertir une image en niveaux de gris 16 bits en C# ?

DDD
Libérer: 2025-01-17 12:47:11
original
556 Les gens l'ont consulté

How to Convert an Image to 16-bit Grayscale in C#?

Convertir l'image en niveaux de gris 16 bits en C#

La conversion d'une image en niveaux de gris de 16 bits par pixel est différente du simple réglage des composants R, V et B individuels sur des valeurs de luminance. Voici comment y parvenir en C# :

<code class="language-csharp">Bitmap grayScaleBP = new System.Drawing.Bitmap(2, 2, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);</code>
Copier après la connexion

Convertir en niveaux de gris

Pour convertir une image existante en niveaux de gris :

<code class="language-csharp">Bitmap c = new Bitmap("fromFile");
Bitmap d;
for (int x = 0; x < ...</code>
Copier après la connexion

(Une partie du code est omise ici car le code original est incomplet et contient des erreurs)

Options plus rapides

Pour une conversion plus rapide des niveaux de gris, vous pouvez utiliser ColorMatrix :

<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 = 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}
            });

        // 使用灰度颜色矩阵将原始图像绘制到新图像上
        using (ImageAttributes attributes = new ImageAttributes())
        {
            attributes.SetColorMatrix(colorMatrix);
            g.DrawImage(original, new Rectangle(0, 0, original.Width, original.Height),
                        0, 0, original.Width, original.Height, GraphicsUnit.Pixel, attributes);
        }
    }

    return newBitmap;
}</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal