Lire en anglais

Partager via


Bitmap.LockBits Méthode

Définition

Verrouille Bitmap dans la mémoire système.

Surcharges

LockBits(Rectangle, ImageLockMode, PixelFormat)

Verrouille Bitmap dans la mémoire système.

LockBits(Rectangle, ImageLockMode, PixelFormat, BitmapData)

Verrouille Bitmap dans la mémoire système.

LockBits(Rectangle, ImageLockMode, PixelFormat)

Source:
Bitmap.cs
Source:
Bitmap.cs
Source:
Bitmap.cs

Verrouille Bitmap dans la mémoire système.

public System.Drawing.Imaging.BitmapData LockBits (System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format);

Paramètres

rect
Rectangle

Structure Rectangle qui spécifie la partie de Bitmap à verrouiller.

flags
ImageLockMode

Énumération ImageLockMode qui spécifie le niveau d'accès (lecture/écriture) de Bitmap.

format
PixelFormat

Énumération PixelFormat qui spécifie le format de données de ce Bitmap.

Retours

BitmapData qui contient des informations sur cette opération de verrouillage.

Exceptions

PixelFormat n'est pas une valeur en bits par pixel spécifique.

- ou -

Le PixelFormat inexact est passé pour une bitmap.

L'opération a échoué.

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. Cet exemple n’est pas conçu pour fonctionner correctement avec tous les formats de pixels, mais pour fournir un exemple d’utilisation de la LockBits méthode . 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.

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

Remarques

Utilisez la LockBits méthode pour verrouiller une bitmap existante dans la mémoire système afin qu’elle puisse être modifiée par programmation. Vous pouvez modifier la couleur d’une image avec la SetPixel méthode , bien que la LockBits méthode offre de meilleures performances pour les modifications à grande échelle.

Spécifie BitmapData les attributs du , tels que la taille, le Bitmapformat du pixel, l’adresse de départ des données de pixel en mémoire et la longueur de chaque ligne de balayage (stride).

Lorsque vous appelez cette méthode, vous devez utiliser un membre de l’énumération System.Drawing.Imaging.PixelFormat qui contient une valeur BPP (bits par pixel) spécifique. L’utilisation System.Drawing.Imaging.PixelFormat de valeurs telles que Indexed et Gdi lève un System.ArgumentException. En outre, la transmission d’un format de pixel incorrect pour une bitmap lève un System.ArgumentException.

S’applique à

LockBits(Rectangle, ImageLockMode, PixelFormat, BitmapData)

Source:
Bitmap.cs
Source:
Bitmap.cs
Source:
Bitmap.cs

Verrouille Bitmap dans la mémoire système.

public System.Drawing.Imaging.BitmapData LockBits (System.Drawing.Rectangle rect, System.Drawing.Imaging.ImageLockMode flags, System.Drawing.Imaging.PixelFormat format, System.Drawing.Imaging.BitmapData bitmapData);

Paramètres

rect
Rectangle

Structure rectangle qui spécifie la partie de Bitmap à verrouiller.

flags
ImageLockMode

Une des valeurs ImageLockMode qui spécifie le niveau d'accès (lecture/écriture) de Bitmap.

format
PixelFormat

Une des valeurs PixelFormat qui spécifie le format des données de Bitmap.

bitmapData
BitmapData

BitmapData qui contient des informations sur l'opération de verrouillage.

Retours

BitmapData qui contient des informations sur l'opération de verrouillage.

Exceptions

La valeur PixelFormat n'est pas une valeur en bits par pixel spécifique.

- ou -

Le PixelFormat inexact est passé pour une bitmap.

L'opération a échoué.

Remarques

Utilisez la LockBits méthode pour verrouiller une bitmap existante dans la mémoire système afin qu’elle puisse être modifiée par programmation. Vous pouvez modifier la couleur d’une image avec la SetPixel méthode , bien que la LockBits méthode offre de meilleures performances pour les modifications à grande échelle.

Lorsque vous appelez cette méthode, vous devez utiliser un membre de l’énumération System.Drawing.Imaging.PixelFormat qui contient une valeur BPP (bits par pixel) spécifique. L’utilisation System.Drawing.Imaging.PixelFormat de valeurs, telles que Indexed et Gdi, lève un System.ArgumentException. En outre, la transmission d’un format de pixel incorrect pour une bitmap lève un System.ArgumentException.

Cette version de la LockBits méthode est destinée à être utilisée avec la flags valeur .ImageLockMode.UserInputBuffer

S’applique à