Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    PixelBuffer Class

    Namespace: Stride.Graphics
    Assembly: Stride.dll

    An unmanaged buffer of pixels.

    System.Object → PixelBuffer
    Derived from PixelBuffer:

    public sealed class PixelBuffer
    Name Description
    Constructors
    PixelBuffer(Int32, Int32, PixelFormat, Int32, Int32, IntPtr)

    Initializes a new instance of the PixelBuffer struct.

    Properties
    BufferStride

    Gets the total size in bytes of this pixel buffer.

    DataPointer

    Gets the pointer to the pixel buffer.

    Format

    Gets the format.

    Height

    Gets the height.

    PixelSize

    Gets the pixel size in bytes.

    RowStride

    Gets the row stride in number of bytes.

    Width

    Gets the width.

    Methods
    ConvertFormatToNonSRgb()

    Converts the format to non sRGB.

    ConvertFormatToSRgb()

    Converts the format to sRGB.

    CopyTo(PixelBuffer)

    Copies this pixel buffer to a destination pixel buffer.

    GetPixel<T>(Int32, Int32)

    Gets the pixel value at a specified position.

    GetPixels<T>(T[], Int32)

    Gets scanline pixels from the buffer.

    GetPixels<T>(T[], Int32, Int32, Int32)

    Gets scanline pixels from the buffer.

    GetPixels<T>(Int32)

    Gets scanline pixels from the buffer.

    Save(Stream, ImageFileType)

    Saves this pixel buffer to a stream.

    SetPixel<T>(Int32, Int32, T)

    Gets the pixel value at a specified position.

    SetPixels<T>(T[], Int32)

    Sets scanline pixels to the buffer.

    SetPixels<T>(T[], Int32, Int32, Int32)

    Sets scanline pixels to the buffer.

    | Improve this Doc View Source

    Constructors


    PixelBuffer(Int32, Int32, PixelFormat, Int32, Int32, IntPtr)

    Initializes a new instance of the PixelBuffer struct.

    public PixelBuffer(int width, int height, PixelFormat format, int rowStride, int bufferStride, IntPtr dataPointer)
    Parameters
    Type Name Description
    System.Int32 width

    The width.

    System.Int32 height

    The height.

    PixelFormat format

    The format.

    System.Int32 rowStride

    The row pitch.

    System.Int32 bufferStride

    The slice pitch.

    System.IntPtr dataPointer

    The pixels.

    | Improve this Doc View Source

    Properties


    BufferStride

    Gets the total size in bytes of this pixel buffer.

    public int BufferStride { get; }
    Property Value
    Type Description
    System.Int32

    The size in bytes of the pixel buffer.


    DataPointer

    Gets the pointer to the pixel buffer.

    public IntPtr DataPointer { get; }
    Property Value
    Type Description
    System.IntPtr

    The pointer to the pixel buffer.


    Format

    Gets the format.

    public PixelFormat Format { get; }
    Property Value
    Type Description
    PixelFormat

    The format.


    Height

    Gets the height.

    public int Height { get; }
    Property Value
    Type Description
    System.Int32

    The height.


    PixelSize

    Gets the pixel size in bytes.

    public int PixelSize { get; }
    Property Value
    Type Description
    System.Int32

    The pixel size in bytes.


    RowStride

    Gets the row stride in number of bytes.

    public int RowStride { get; }
    Property Value
    Type Description
    System.Int32

    The row stride in number of bytes.


    Width

    Gets the width.

    public int Width { get; }
    Property Value
    Type Description
    System.Int32

    The width.

    | Improve this Doc View Source

    Methods


    ConvertFormatToNonSRgb()

    Converts the format to non sRGB.

    public void ConvertFormatToNonSRgb()

    ConvertFormatToSRgb()

    Converts the format to sRGB.

    public void ConvertFormatToSRgb()

    CopyTo(PixelBuffer)

    Copies this pixel buffer to a destination pixel buffer.

    public void CopyTo(PixelBuffer pixelBuffer)
    Parameters
    Type Name Description
    PixelBuffer pixelBuffer

    The destination pixel buffer.

    Remarks

    The destination pixel buffer must have exactly the same dimensions (width, height) and format than this instance. Destination buffer can have different row stride.


    GetPixel<T>(Int32, Int32)

    Gets the pixel value at a specified position.

    public T GetPixel<T>(int x, int y)
        where T : struct
    Parameters
    Type Name Description
    System.Int32 x

    The x-coordinate.

    System.Int32 y

    The y-coordinate.

    Returns
    Type Description
    T

    The pixel value.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    Caution, this method doesn't check bounding.


    GetPixels<T>(T[], Int32)

    Gets scanline pixels from the buffer.

    public void GetPixels<T>(T[] pixels, int yOffset = 0)
        where T : struct
    Parameters
    Type Name Description
    T[] pixels

    An allocated scanline pixel buffer

    System.Int32 yOffset

    The y line offset.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    This method is working on a row basis. The is specifying the first row to get the pixels from.

    Exceptions
    Type Condition
    System.ArgumentException

    If the sizeof(T) is an invalid size


    GetPixels<T>(T[], Int32, Int32, Int32)

    Gets scanline pixels from the buffer.

    public void GetPixels<T>(T[] pixels, int yOffset, int pixelIndex, int pixelCount)
        where T : struct
    Parameters
    Type Name Description
    T[] pixels

    An allocated scanline pixel buffer

    System.Int32 yOffset

    The y line offset.

    System.Int32 pixelIndex

    Offset into the destination buffer.

    System.Int32 pixelCount

    Number of pixels to write into the destination buffer.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    This method is working on a row basis. The is specifying the first row to get the pixels from.

    Exceptions
    Type Condition
    System.ArgumentException

    If the sizeof(T) is an invalid size


    GetPixels<T>(Int32)

    Gets scanline pixels from the buffer.

    public T[] GetPixels<T>(int yOffset = 0)
        where T : struct
    Parameters
    Type Name Description
    System.Int32 yOffset

    The y line offset.

    Returns
    Type Description
    T[]

    Scanline pixels from the buffer

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    This method is working on a row basis. The is specifying the first row to get the pixels from.

    Exceptions
    Type Condition
    System.ArgumentException

    If the sizeof(T) is an invalid size


    Save(Stream, ImageFileType)

    Saves this pixel buffer to a stream.

    public void Save(Stream imageStream, ImageFileType fileType)
    Parameters
    Type Name Description
    System.IO.Stream imageStream

    The destination stream.

    ImageFileType fileType

    Specify the output format.

    Remarks

    This method support the following format: dds, bmp, jpg, png, gif, tiff, wmp, tga.


    SetPixel<T>(Int32, Int32, T)

    Gets the pixel value at a specified position.

    public void SetPixel<T>(int x, int y, T value)
        where T : struct
    Parameters
    Type Name Description
    System.Int32 x

    The x-coordinate.

    System.Int32 y

    The y-coordinate.

    T value

    The pixel value.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    Caution, this method doesn't check bounding.


    SetPixels<T>(T[], Int32)

    Sets scanline pixels to the buffer.

    public void SetPixels<T>(T[] sourcePixels, int yOffset = 0)
        where T : struct
    Parameters
    Type Name Description
    T[] sourcePixels

    Source pixel buffer

    System.Int32 yOffset

    The y line offset.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    This method is working on a row basis. The is specifying the first row to get the pixels from.

    Exceptions
    Type Condition
    System.ArgumentException

    If the sizeof(T) is an invalid size


    SetPixels<T>(T[], Int32, Int32, Int32)

    Sets scanline pixels to the buffer.

    public void SetPixels<T>(T[] sourcePixels, int yOffset, int pixelIndex, int pixelCount)
        where T : struct
    Parameters
    Type Name Description
    T[] sourcePixels

    Source pixel buffer

    System.Int32 yOffset

    The y line offset.

    System.Int32 pixelIndex

    Offset into the source buffer.

    System.Int32 pixelCount

    Number of pixels to write into the source buffer.

    Type Parameters
    Name Description
    T

    Type of the pixel data

    Remarks

    This method is working on a row basis. The is specifying the first row to get the pixels from.

    Exceptions
    Type Condition
    System.ArgumentException

    If the sizeof(T) is an invalid size


    Extension Methods

    ComponentBaseExtensions.DisposeBy<T>(T, ICollectorHolder)
    ComponentBaseExtensions.RemoveDisposeBy<T>(T, ICollectorHolder)
    • Improve this Doc
    • View Source
    In This Article

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation