Leer en inglés

Compartir a través de


ImageLockMode Enumeración

Definición

Especifica los marcadores que se pasan al parámetro marcadores del método LockBits. El método LockBits bloquea una parte de una imagen para poder leer o escribir los datos de píxeles.

C#
public enum ImageLockMode
Herencia
ImageLockMode

Campos

Nombre Valor Description
ReadOnly 1

Especifica que una porción de la imagen está bloqueada para lectura.

ReadWrite 3

Especifica que una porción de la imagen está bloqueada para lectura o escritura.

UserInputBuffer 4

Especifica que el búfer que se utiliza para leer o escribir datos de píxeles lo asigna el usuario. Si se establece este marcador, el parámetro flags del método LockBits actúa como parámetro de entrada (y quizá como parámetro de salida). Si se desactiva este marcador, el parámetro flags actúa únicamente como parámetro de salida.

WriteOnly 2

Especifica que una porción de la imagen está bloqueada para escritura.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar las PixelFormatpropiedades , Height, Widthy , los LockBits métodos y Scan0UnlockBits y y la ImageLockMode enumeración . Este ejemplo está diseñado para usarse con Windows Forms. Para ejecutar este ejemplo, péguelo en un formulario y controle el evento del Paint formulario mediante una llamada al LockUnlockBitsExample método , pasando e como 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);
    }

Se aplica a

Producto Versiones
.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