Lire en anglais

Partager via


ImageLockMode Énumération

Définition

Spécifie des indicateurs qui sont passés au paramètre des indicateurs de la méthode LockBits. La méthode verrouille LockBits une partie d'une image de sorte que vous puissiez lire ou écrire les données en pixels.

C#
public enum ImageLockMode
Héritage
ImageLockMode

Champs

Nom Valeur Description
ReadOnly 1

Spécifie qu'une partie de l'image est verrouillée pour la lecture.

ReadWrite 3

Spécifie qu'une partie de l'image est verrouillée pour la lecture ou l'écriture.

UserInputBuffer 4

Spécifie que la mémoire tampon utilisée pour la lecture ou l'écriture de données en pixels est allouée par l'utilisateur. Si cet indicateur est défini, le paramètre flags de la méthode LockBits sert de paramètre d'entrée (et éventuellement de paramètre de sortie). Si cet indicateur est supprimé, le paramètre flags sert uniquement de paramètre de sortie.

WriteOnly 2

Spécifie qu'une partie de l'image est verrouillée pour l'écriture.

Exemples

L’exemple de code suivant montre comment utiliser les PixelFormatpropriétés , Height, Widthet Scan0 ; les LockBits méthodes et UnlockBits ; et l’énumération ImageLockMode . Cet exemple est conçu pour être utilisé avec Windows Forms. Pour exécuter cet exemple, collez-le dans un formulaire et gérez l’événement du Paint formulaire en appelant la LockUnlockBitsExample méthode, en passant e comme PaintEventArgs.

C#
private void LockUnlockBitsExample(PaintEventArgs e)
    {

        // Create a new bitmap.
        Bitmap bmp = new Bitmap("c:\\fakePhoto.jpg");

        // Lock the bitmap's bits.  
        Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
        System.Drawing.Imaging.BitmapData bmpData =
            bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,
            bmp.PixelFormat);

        // Get the address of the first line.
        IntPtr ptr = bmpData.Scan0;

        // Declare an array to hold the bytes of the bitmap.
        int bytes  = Math.Abs(bmpData.Stride) * bmp.Height;
        byte[] rgbValues = new byte[bytes];

        // Copy the RGB values into the array.
        System.Runtime.InteropServices.Marshal.Copy(ptr, rgbValues, 0, bytes);

        // Set every third value to 255. A 24bpp bitmap will look red.  
        for (int counter = 2; counter < rgbValues.Length; counter += 3)
            rgbValues[counter] = 255;

        // Copy the RGB values back to the bitmap
        System.Runtime.InteropServices.Marshal.Copy(rgbValues, 0, ptr, bytes);

        // Unlock the bits.
        bmp.UnlockBits(bmpData);

        // Draw the modified image.
        e.Graphics.DrawImage(bmp, 0, 150);
    }

S’applique à

Produit Versions
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9