İngilizce dilinde oku

Aracılığıyla paylaş


ImageLockMode Sabit listesi

Tanım

yönteminin flags parametresine LockBits geçirilen bayrakları belirtir. yöntemi, LockBits piksel verilerini okuyabilmeniz veya yazabilmeniz için görüntünün bir bölümünü kilitler.

C#
public enum ImageLockMode
Devralma
ImageLockMode

Alanlar

Name Değer Description
ReadOnly 1

Görüntünün bir bölümünün okuma için kilitlendiğini belirtir.

ReadWrite 3

Görüntünün bir bölümünün okuma veya yazma için kilitlendiğini belirtir.

UserInputBuffer 4

Piksel verilerini okumak veya yazmak için kullanılan arabelleğin kullanıcı tarafından ayrıldığını belirtir. Bu bayrak ayarlanırsa, flags yönteminin LockBits parametresi bir giriş parametresi (ve muhtemelen bir çıkış parametresi) olarak hizmet eder. Bu bayrak temizlenirse, flags parametresi yalnızca bir çıkış parametresi olarak hizmet eder.

WriteOnly 2

Görüntünün bir bölümünün yazma için kilitlendiğini belirtir.

Örnekler

Aşağıdaki kod örneği, , , WidthHeightve özelliklerinin, ve UnlockBits yöntemlerinin LockBits ve Scan0 numaralandırmasının ImageLockMode nasıl kullanılacağını PixelFormatgösterir. Bu örnek, Windows Forms ile kullanılacak şekilde tasarlanmıştır. Bu örneği çalıştırmak için bir forma yapıştırın ve yöntemini çağırarak formun PaintLockUnlockBitsExample olayını işleyip e olarak PaintEventArgsgeçirin.

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

Şunlara uygulanır

Ürün Sürümler
.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