SixLabors.ImageSharp Extension methods over Image{TPixel} For a given file path find the best encoder to use via its extension. The source image. The target file path to save the image to. The file path is null. No encoder available for provided path. The matching . Accepts a to implement a double-dispatch pattern in order to apply pixel-specific operations on non-generic instances The source image. The image visitor. Accepts a to implement a double-dispatch pattern in order to apply pixel-specific operations on non-generic instances The source image. The image visitor. The token to monitor for cancellation requests. A representing the asynchronous operation. Gets the configuration for the image. The source image. Returns the configuration. Gets the configuration for the image frame. The source image. Returns the configuration. Gets the configuration. The source image Returns the bounds of the image Gets the representation of the pixels as a containing the backing pixel data of the image stored in row major order, as a list of contiguous blocks in the source image's pixel format. The source image. The type of the pixel. The . Certain Image Processors may invalidate the returned and all it's buffers, therefore it's not recommended to mutate the image while holding a reference to it's . Gets the representation of the pixels as a containing the backing pixel data of the image stored in row major order, as a list of contiguous blocks in the source image's pixel format. The source image. The type of the pixel. The . Certain Image Processors may invalidate the returned and all it's buffers, therefore it's not recommended to mutate the image while holding a reference to it's . Gets the representation of the pixels as a of contiguous memory at row beginning from the the first pixel on that row. The type of the pixel. The source. The row. The Gets the representation of the pixels as of of contiguous memory at row beginning from the the first pixel on that row. The type of the pixel. The source. The row. The Gets the assigned to 'source'. The source image. Returns the configuration. Unlike traditional Mono/.NET, code on the iPhone is statically compiled ahead of time instead of being compiled on demand by a JIT compiler. This means there are a few limitations with respect to generics, these are caused because not every possible generic instantiation can be determined up front at compile time. The Aot Compiler is designed to overcome the limitations of this compiler. None of the methods in this class should ever be called, the code only has to exist at compile-time to be picked up by the AoT compiler. (Very similar to the LinkerIncludes.cs technique used in Xamarin.Android projects.) This is the method that seeds the AoT compiler. None of these seed methods needs to actually be called to seed the compiler. The calls just need to be present when the code is compiled, and each implementation will be built. This method doesn't actually do anything but serves an important purpose... If you are running ImageSharp on iOS and try to call SaveAsGif, it will throw an exception: "Attempting to JIT compile method... OctreeFrameQuantizer.ConstructPalette... while running in aot-only mode." The reason this happens is the SaveAsGif method makes heavy use of generics, which are too confusing for the AoT compiler used on Xamarin.iOS. It spins up the JIT compiler to try and figure it out, but that is an illegal op on iOS so it bombs out. If you are getting the above error, you need to call this method, which will pre-seed the AoT compiler with the necessary methods to complete the SaveAsGif call. That's it, otherwise you should NEVER need this method!!! Seeds the compiler using the given pixel format. The pixel format. This method pre-seeds the for a given pixel format in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The encoder. This method pre-seeds the in the AoT compiler. The pixel format. The decoder. This method pre-seeds the all in the AoT compiler. There is no structure that implements ISwizzler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The processor type This method pre-seeds the in the AoT compiler. The pixel format. The processor type This method pre-seeds the all in the AoT compiler. There is no structure that implements ISwizzler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The processor type This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The processor type This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The quantizer type This method pre-seeds the in the AoT compiler. The pixel format. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The dither. This method pre-seeds the all in the AoT compiler. The pixel format. This method pre-seeds the in the AoT compiler. The pixel format. The buffer. Defines the contract for objects that can provide access to configuration. Gets the configuration which allows altering default behaviour or extending the library. A visitor to implement a double-dispatch pattern in order to apply pixel-specific operations on non-generic instances. Provides a pixel-specific implementation for a given operation. The image. The pixel type. A visitor to implement a double-dispatch pattern in order to apply pixel-specific operations on non-generic instances. Provides a pixel-specific implementation for a given operation. The image. The token to monitor for cancellation requests. The pixel type. A representing the asynchronous operation. Encapsulates the basic properties and methods required to manipulate images. Gets the pixel buffer. Encapsulates the basic properties and methods required to manipulate images. The type of the pixel. Gets the pixel buffer. Defines the contract for an action that operates on a row interval. Invokes the method passing the row interval. The row interval. Defines the contract for an action that operates on a row interval with a temporary buffer. The type of buffer elements. Invokes the method passing the row interval and a buffer. The row interval. The contiguous region of memory. Defines the contract for an action that operates on a row. Invokes the method passing the row y coordinate. The row y coordinate. Defines the contract for an action that operates on a row with a temporary buffer. The type of buffer elements. Invokes the method passing the row and a buffer. The row y coordinate. The contiguous region of memory. Defines execution settings for methods in . Default value for . Initializes a new instance of the struct. The value used for initializing when using TPL. The value for . The . Initializes a new instance of the struct. The value used for initializing when using TPL. The . Gets the . Gets the value used for initializing when using TPL. Gets the minimum number of pixels being processed by a single task when parallelizing operations with TPL. Launching tasks for pixel regions below this limit is not worth the overhead. Initialized with by default, the optimum value is operation specific. (The cheaper the operation, the larger the value is.) Creates a new instance of having multiplied by The value to multiply with. The modified . Get the default for a The . The . Utility methods for batched processing of pixel row intervals. Parallel execution is optimized for image processing based on values defined or . Using this class is preferred over direct usage of utility methods. Utility methods for batched processing of pixel row intervals. Parallel execution is optimized for image processing based on values defined or . Using this class is preferred over direct usage of utility methods. Iterate through the rows of a rectangle in optimized batches. The type of row operation to perform. The to get the parallel settings from. The . The operation defining the iteration logic on a single row. Iterate through the rows of a rectangle in optimized batches. The type of row operation to perform. The . The . The operation defining the iteration logic on a single row. Iterate through the rows of a rectangle in optimized batches. instantiating a temporary buffer for each invocation. The type of row operation to perform. The type of buffer elements. The to get the parallel settings from. The . The operation defining the iteration logic on a single row. Iterate through the rows of a rectangle in optimized batches. instantiating a temporary buffer for each invocation. The type of row operation to perform. The type of buffer elements. The . The . The operation defining the iteration logic on a single row. Iterate through the rows of a rectangle in optimized batches defined by -s. The type of row operation to perform. The to get the parallel settings from. The . The operation defining the iteration logic on a single . Iterate through the rows of a rectangle in optimized batches defined by -s. The type of row operation to perform. The . The . The operation defining the iteration logic on a single . Iterate through the rows of a rectangle in optimized batches defined by -s instantiating a temporary buffer for each invocation. The type of row operation to perform. The type of buffer elements. The to get the parallel settings from. The . The operation defining the iteration logic on a single . Iterate through the rows of a rectangle in optimized batches defined by -s instantiating a temporary buffer for each invocation. The type of row operation to perform. The type of buffer elements. The . The . The operation defining the iteration logic on a single . This is necessary to avoid being excluded from compilation in environments that do AOT builds, such as Unity's IL2CPP and Xamarin. The only thing that matters is the class name. There is no need to use or inherit from the PreserveAttribute class in each environment. Contains constructors and implicit conversion methods. Represents a color value that is convertible to any type. The internal representation and layout of this structure is hidden by intention. It's not serializable, and it should not be considered as part of a contract. Unlike System.Drawing.Color, has to be converted to a specific pixel value to query the color components. Contains static named color values. Contains the definition of . Contains the definition of . Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Initializes a new instance of the struct. The containing the color information. Converts a to . The . The . Converts an to . The . The . Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is equal to the parameter; otherwise, false. Checks whether two structures are not equal. The left hand operand. The right hand operand. True if the parameter is not equal to the parameter; otherwise, false. Creates a from RGBA bytes. The red component (0-255). The green component (0-255). The blue component (0-255). The alpha component (0-255). The . Creates a from RGB bytes. The red component (0-255). The green component (0-255). The blue component (0-255). The . Creates a from the given . The pixel to convert from. The pixel format. The . Creates a new instance of the struct from the given hexadecimal string. The hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. The . Attempts to creates a new instance of the struct from the given hexadecimal string. The hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. When this method returns, contains the equivalent of the hexadecimal input. The . Creates a new instance of the struct from the given input string. The name of the color or the hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. The . Attempts to creates a new instance of the struct from the given input string. The name of the color or the hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. When this method returns, contains the equivalent of the hexadecimal input. The . Alters the alpha channel of the color, returning a new instance. The new value of alpha [0..1]. The color having it's alpha channel altered. Gets the hexadecimal representation of the color instance in rrggbbaa form. A hexadecimal string representation of the value. Converts the color instance to a specified type. The pixel type to convert to. The pixel value. Bulk converts a span of to a span of a specified type. The pixel type to convert to. The configuration. The source color span. The destination pixel span. Represents a matching the W3C definition that has an hex value of #F0F8FF. Represents a matching the W3C definition that has an hex value of #FAEBD7. Represents a matching the W3C definition that has an hex value of #00FFFF. Represents a matching the W3C definition that has an hex value of #7FFFD4. Represents a matching the W3C definition that has an hex value of #F0FFFF. Represents a matching the W3C definition that has an hex value of #F5F5DC. Represents a matching the W3C definition that has an hex value of #FFE4C4. Represents a matching the W3C definition that has an hex value of #000000. Represents a matching the W3C definition that has an hex value of #FFEBCD. Represents a matching the W3C definition that has an hex value of #0000FF. Represents a matching the W3C definition that has an hex value of #8A2BE2. Represents a matching the W3C definition that has an hex value of #A52A2A. Represents a matching the W3C definition that has an hex value of #DEB887. Represents a matching the W3C definition that has an hex value of #5F9EA0. Represents a matching the W3C definition that has an hex value of #7FFF00. Represents a matching the W3C definition that has an hex value of #D2691E. Represents a matching the W3C definition that has an hex value of #FF7F50. Represents a matching the W3C definition that has an hex value of #6495ED. Represents a matching the W3C definition that has an hex value of #FFF8DC. Represents a matching the W3C definition that has an hex value of #DC143C. Represents a matching the W3C definition that has an hex value of #00FFFF. Represents a matching the W3C definition that has an hex value of #00008B. Represents a matching the W3C definition that has an hex value of #008B8B. Represents a matching the W3C definition that has an hex value of #B8860B. Represents a matching the W3C definition that has an hex value of #A9A9A9. Represents a matching the W3C definition that has an hex value of #006400. Represents a matching the W3C definition that has an hex value of #A9A9A9. Represents a matching the W3C definition that has an hex value of #BDB76B. Represents a matching the W3C definition that has an hex value of #8B008B. Represents a matching the W3C definition that has an hex value of #556B2F. Represents a matching the W3C definition that has an hex value of #FF8C00. Represents a matching the W3C definition that has an hex value of #9932CC. Represents a matching the W3C definition that has an hex value of #8B0000. Represents a matching the W3C definition that has an hex value of #E9967A. Represents a matching the W3C definition that has an hex value of #8FBC8F. Represents a matching the W3C definition that has an hex value of #483D8B. Represents a matching the W3C definition that has an hex value of #2F4F4F. Represents a matching the W3C definition that has an hex value of #2F4F4F. Represents a matching the W3C definition that has an hex value of #00CED1. Represents a matching the W3C definition that has an hex value of #9400D3. Represents a matching the W3C definition that has an hex value of #FF1493. Represents a matching the W3C definition that has an hex value of #00BFFF. Represents a matching the W3C definition that has an hex value of #696969. Represents a matching the W3C definition that has an hex value of #696969. Represents a matching the W3C definition that has an hex value of #1E90FF. Represents a matching the W3C definition that has an hex value of #B22222. Represents a matching the W3C definition that has an hex value of #FFFAF0. Represents a matching the W3C definition that has an hex value of #228B22. Represents a matching the W3C definition that has an hex value of #FF00FF. Represents a matching the W3C definition that has an hex value of #DCDCDC. Represents a matching the W3C definition that has an hex value of #F8F8FF. Represents a matching the W3C definition that has an hex value of #FFD700. Represents a matching the W3C definition that has an hex value of #DAA520. Represents a matching the W3C definition that has an hex value of #808080. Represents a matching the W3C definition that has an hex value of #008000. Represents a matching the W3C definition that has an hex value of #ADFF2F. Represents a matching the W3C definition that has an hex value of #808080. Represents a matching the W3C definition that has an hex value of #F0FFF0. Represents a matching the W3C definition that has an hex value of #FF69B4. Represents a matching the W3C definition that has an hex value of #CD5C5C. Represents a matching the W3C definition that has an hex value of #4B0082. Represents a matching the W3C definition that has an hex value of #FFFFF0. Represents a matching the W3C definition that has an hex value of #F0E68C. Represents a matching the W3C definition that has an hex value of #E6E6FA. Represents a matching the W3C definition that has an hex value of #FFF0F5. Represents a matching the W3C definition that has an hex value of #7CFC00. Represents a matching the W3C definition that has an hex value of #FFFACD. Represents a matching the W3C definition that has an hex value of #ADD8E6. Represents a matching the W3C definition that has an hex value of #F08080. Represents a matching the W3C definition that has an hex value of #E0FFFF. Represents a matching the W3C definition that has an hex value of #FAFAD2. Represents a matching the W3C definition that has an hex value of #D3D3D3. Represents a matching the W3C definition that has an hex value of #90EE90. Represents a matching the W3C definition that has an hex value of #D3D3D3. Represents a matching the W3C definition that has an hex value of #FFB6C1. Represents a matching the W3C definition that has an hex value of #FFA07A. Represents a matching the W3C definition that has an hex value of #20B2AA. Represents a matching the W3C definition that has an hex value of #87CEFA. Represents a matching the W3C definition that has an hex value of #778899. Represents a matching the W3C definition that has an hex value of #778899. Represents a matching the W3C definition that has an hex value of #B0C4DE. Represents a matching the W3C definition that has an hex value of #FFFFE0. Represents a matching the W3C definition that has an hex value of #00FF00. Represents a matching the W3C definition that has an hex value of #32CD32. Represents a matching the W3C definition that has an hex value of #FAF0E6. Represents a matching the W3C definition that has an hex value of #FF00FF. Represents a matching the W3C definition that has an hex value of #800000. Represents a matching the W3C definition that has an hex value of #66CDAA. Represents a matching the W3C definition that has an hex value of #0000CD. Represents a matching the W3C definition that has an hex value of #BA55D3. Represents a matching the W3C definition that has an hex value of #9370DB. Represents a matching the W3C definition that has an hex value of #3CB371. Represents a matching the W3C definition that has an hex value of #7B68EE. Represents a matching the W3C definition that has an hex value of #00FA9A. Represents a matching the W3C definition that has an hex value of #48D1CC. Represents a matching the W3C definition that has an hex value of #C71585. Represents a matching the W3C definition that has an hex value of #191970. Represents a matching the W3C definition that has an hex value of #F5FFFA. Represents a matching the W3C definition that has an hex value of #FFE4E1. Represents a matching the W3C definition that has an hex value of #FFE4B5. Represents a matching the W3C definition that has an hex value of #FFDEAD. Represents a matching the W3C definition that has an hex value of #000080. Represents a matching the W3C definition that has an hex value of #FDF5E6. Represents a matching the W3C definition that has an hex value of #808000. Represents a matching the W3C definition that has an hex value of #6B8E23. Represents a matching the W3C definition that has an hex value of #FFA500. Represents a matching the W3C definition that has an hex value of #FF4500. Represents a matching the W3C definition that has an hex value of #DA70D6. Represents a matching the W3C definition that has an hex value of #EEE8AA. Represents a matching the W3C definition that has an hex value of #98FB98. Represents a matching the W3C definition that has an hex value of #AFEEEE. Represents a matching the W3C definition that has an hex value of #DB7093. Represents a matching the W3C definition that has an hex value of #FFEFD5. Represents a matching the W3C definition that has an hex value of #FFDAB9. Represents a matching the W3C definition that has an hex value of #CD853F. Represents a matching the W3C definition that has an hex value of #FFC0CB. Represents a matching the W3C definition that has an hex value of #DDA0DD. Represents a matching the W3C definition that has an hex value of #B0E0E6. Represents a matching the W3C definition that has an hex value of #800080. Represents a matching the W3C definition that has an hex value of #663399. Represents a matching the W3C definition that has an hex value of #FF0000. Represents a matching the W3C definition that has an hex value of #BC8F8F. Represents a matching the W3C definition that has an hex value of #4169E1. Represents a matching the W3C definition that has an hex value of #8B4513. Represents a matching the W3C definition that has an hex value of #FA8072. Represents a matching the W3C definition that has an hex value of #F4A460. Represents a matching the W3C definition that has an hex value of #2E8B57. Represents a matching the W3C definition that has an hex value of #FFF5EE. Represents a matching the W3C definition that has an hex value of #A0522D. Represents a matching the W3C definition that has an hex value of #C0C0C0. Represents a matching the W3C definition that has an hex value of #87CEEB. Represents a matching the W3C definition that has an hex value of #6A5ACD. Represents a matching the W3C definition that has an hex value of #708090. Represents a matching the W3C definition that has an hex value of #708090. Represents a matching the W3C definition that has an hex value of #FFFAFA. Represents a matching the W3C definition that has an hex value of #00FF7F. Represents a matching the W3C definition that has an hex value of #4682B4. Represents a matching the W3C definition that has an hex value of #D2B48C. Represents a matching the W3C definition that has an hex value of #008080. Represents a matching the W3C definition that has an hex value of #D8BFD8. Represents a matching the W3C definition that has an hex value of #FF6347. Represents a matching the W3C definition that has an hex value of #00000000. Represents a matching the W3C definition that has an hex value of #40E0D0. Represents a matching the W3C definition that has an hex value of #EE82EE. Represents a matching the W3C definition that has an hex value of #F5DEB3. Represents a matching the W3C definition that has an hex value of #FFFFFF. Represents a matching the W3C definition that has an hex value of #F5F5F5. Represents a matching the W3C definition that has an hex value of #FFFF00. Represents a matching the W3C definition that has an hex value of #9ACD32. Gets a collection of named, web safe colors as defined in the CSS Color Module Level 4. Gets a collection of colors as defined in the original second edition of Werner’s Nomenclature of Colours 1821. The hex codes were collected and defined by Nicholas Rougeux . Represents a CIE L*a*b* 1976 color. D50 standard illuminant. Used when reference white is not specified explicitly. Gets the lightness dimension. A value usually ranging between 0 (black), 100 (diffuse white) or higher (specular white). Gets the a color component. A value usually ranging from -100 to 100. Negative is green, positive magenta. Gets the b color component. A value usually ranging from -100 to 100. Negative is blue, positive is yellow Gets the reference white point of this color Initializes a new instance of the struct. The lightness dimension. The a (green - magenta) component. The b (blue - yellow) component. Uses as white point. Initializes a new instance of the struct. The lightness dimension. The a (green - magenta) component. The b (blue - yellow) component. The reference white point. Initializes a new instance of the struct. The vector representing the l, a, b components. Uses as white point. Initializes a new instance of the struct. The vector representing the l, a, b components. The reference white point. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Represents the CIE L*C*h°, cylindrical form of the CIE L*a*b* 1976 color. D50 standard illuminant. Used when reference white is not specified explicitly. Gets the lightness dimension. A value ranging between 0 (black), 100 (diffuse white) or higher (specular white). Gets the a chroma component. A value ranging from 0 to 200. Gets the h° hue component in degrees. A value ranging from 0 to 360. Gets the reference white point of this color Initializes a new instance of the struct. The lightness dimension. The chroma, relative saturation. The hue in degrees. Uses as white point. Initializes a new instance of the struct. The lightness dimension. The chroma, relative saturation. The hue in degrees. The reference white point. Initializes a new instance of the struct. The vector representing the l, c, h components. Uses as white point. Initializes a new instance of the struct. The vector representing the l, c, h components. The reference white point. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Computes the saturation of the color (chroma normalized by lightness) A value ranging from 0 to 100. The Represents the CIE L*C*h°, cylindrical form of the CIE L*u*v* 1976 color. D50 standard illuminant. Used when reference white is not specified explicitly. Gets the lightness dimension. A value ranging between 0 (black), 100 (diffuse white) or higher (specular white). Gets the a chroma component. A value ranging from 0 to 200. Gets the h° hue component in degrees. A value ranging from 0 to 360. Gets the reference white point of this color Initializes a new instance of the struct. The lightness dimension. The chroma, relative saturation. The hue in degrees. Uses as white point. Initializes a new instance of the struct. The lightness dimension. The chroma, relative saturation. The hue in degrees. The reference white point. Initializes a new instance of the struct. The vector representing the l, c, h components. Uses as white point. Initializes a new instance of the struct. The vector representing the l, c, h components. The reference white point. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Computes the saturation of the color (chroma normalized by lightness) A value ranging from 0 to 100. The The CIE 1976 (L*, u*, v*) color space, commonly known by its abbreviation CIELUV, is a color space adopted by the International Commission on Illumination (CIE) in 1976, as a simple-to-compute transformation of the 1931 CIE XYZ color space, but which attempted perceptual uniformity D65 standard illuminant. Used when reference white is not specified explicitly. Gets the lightness dimension A value usually ranging between 0 and 100. Gets the blue-yellow chromaticity coordinate of the given whitepoint. A value usually ranging between -100 and 100. Gets the red-green chromaticity coordinate of the given whitepoint. A value usually ranging between -100 and 100. Gets the reference white point of this color Initializes a new instance of the struct. The lightness dimension. The blue-yellow chromaticity coordinate of the given whitepoint. The red-green chromaticity coordinate of the given whitepoint. Uses as white point. Initializes a new instance of the struct. The lightness dimension. The blue-yellow chromaticity coordinate of the given whitepoint. The red-green chromaticity coordinate of the given whitepoint. The reference white point. Initializes a new instance of the struct. The vector representing the l, u, v components. Uses as white point. Initializes a new instance of the struct. The vector representing the l, u, v components. The reference white point. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Represents an CIE xyY 1931 color Gets the X chrominance component. A value usually ranging between 0 and 1. Gets the Y chrominance component. A value usually ranging between 0 and 1. Gets the Y luminance component. A value usually ranging between 0 and 1. Initializes a new instance of the struct. The x chroma component. The y chroma component. The y luminance component. Initializes a new instance of the struct. The vector representing the x, y, Y components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Represents an CIE XYZ 1931 color Gets the X component. A mix (a linear combination) of cone response curves chosen to be nonnegative. A value usually ranging between 0 and 1. Gets the Y luminance component. A value usually ranging between 0 and 1. Gets the Z component. Quasi-equal to blue stimulation, or the S cone response. A value usually ranging between 0 and 1. Initializes a new instance of the struct. X is a mix (a linear combination) of cone response curves chosen to be nonnegative The y luminance component. Z is quasi-equal to blue stimulation, or the S cone of the human eye. Initializes a new instance of the struct. The vector representing the x, y, z components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Returns a new representing this instance. The . Represents an CMYK (cyan, magenta, yellow, keyline) color. Gets the cyan color component. A value ranging between 0 and 1. Gets the magenta color component. A value ranging between 0 and 1. Gets the yellow color component. A value ranging between 0 and 1. Gets the keyline black color component. A value ranging between 0 and 1. Initializes a new instance of the struct. The cyan component. The magenta component. The yellow component. The keyline black component. Initializes a new instance of the struct. The vector representing the c, m, y, k components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Implements gamma companding. Expands a companded channel to its linear equivalent with respect to the energy. The channel value. The gamma value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent. The channel value. The gamma value. The representing the nonlinear channel value. Implements L* companding. For more info see: Expands a companded channel to its linear equivalent with respect to the energy. The channel value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent. The channel value The representing the nonlinear channel value. Implements Rec. 2020 companding function. Expands a companded channel to its linear equivalent with respect to the energy. The channel value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent. The channel value. The representing the nonlinear channel value. Implements the Rec. 709 companding function. http://en.wikipedia.org/wiki/Rec._709 Expands a companded channel to its linear equivalent with respect to the energy. The channel value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent. The channel value. The representing the nonlinear channel value. Implements sRGB companding. For more info see: Expands the companded vectors to their linear equivalents with respect to the energy. The span of vectors. Compresses the uncompanded vectors to their nonlinear equivalents with respect to the energy. The span of vectors. Expands a companded vector to its linear equivalent with respect to the energy. The vector. Compresses an uncompanded vector (linear) to its nonlinear equivalent. The vector. Expands a companded channel to its linear equivalent with respect to the energy. The channel value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent. The channel value. The representing the nonlinear channel value. Constants use for Cie conversion calculations 216F / 24389F 24389F / 27F Performs chromatic adaptation on the various color spaces. Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Provides methods to allow the conversion of color values between different color spaces. Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Allows conversion to . Performs chromatic adaptation of given color. Target white point is . The color to adapt The source white point. The adapted color Performs chromatic adaptation of given color. Target white point is . The color to adapt The source white point. The target white point. The adapted color Adapts color from the source white point to white point set in . The color to adapt The adapted color Adapts color from the source white point to white point set in . The color to adapt The adapted color Adapts color from the source white point to white point set in . The color to adapt The adapted color Adapts color from the source white point to white point set in . The color to adapt The adapted color Adapts color from the source white point to white point set in . The color to adapt The adapted color Adapts a color from the source working space to working space set in . The color to adapt The adapted color Adapts an color from the source working space to working space set in . The color to adapt The adapted color The converter for converting between CieLch to CieLab. Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors The converter for converting between CieLab to CieLch. Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors The converter for converting between CieLab to CieLchuv. Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Gets the correct converter for the given rgb working space. The source working space The Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors, The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Initializes a new instance of the class. Initializes a new instance of the class. The configuration options. Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors. Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors. Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a The color to convert. The Converts a into a . The color to convert. The Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a The color to convert. The Converts a into a . The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Converts a into a The color to convert. The Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors. The span to the destination colors. Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Performs the bulk conversion from into . The span to the source colors The span to the destination colors Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Converts a into a . The color to convert. The Configuration options for the class. Gets or sets the white point used for chromatic adaptation in conversions from/to XYZ color space. When default, no adaptation will be performed. Defaults to: . Gets or sets the white point used *when creating* Luv/LChuv colors. (Luv/LChuv colors on the input already contain the white point information) Defaults to: . Gets or sets the white point used *when creating* Lab/LChab colors. (Lab/LChab colors on the input already contain the white point information) Defaults to: . Gets or sets the white point used *when creating* HunterLab colors. (HunterLab colors on the input already contain the white point information) Defaults to: . Gets or sets the target working space used *when creating* RGB colors. (RGB colors on the input already contain the working space information) Defaults to: . Gets or sets the chromatic adaptation method used. When null, no adaptation will be performed. Gets or sets transformation matrix used in conversion to and from . Represents the coordinates of CIEXY chromaticity space. Gets the chromaticity X-coordinate. Ranges usually from 0 to 1. Gets the chromaticity Y-coordinate Ranges usually from 0 to 1. Initializes a new instance of the struct. Chromaticity coordinate x (usually from 0 to 1) Chromaticity coordinate y (usually from 0 to 1) Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Performs the conversion from the input to an instance of type. The input color instance. The converted result Calculates the blue-yellow chromacity based on the given whitepoint. The whitepoint The Calculates the red-green chromacity based on the given whitepoint. The whitepoint The Color converter between CIE XYZ and CIE xyY. for formulas. Performs the conversion from the input to an instance of type. The input color instance. The converted result Performs the conversion from the input to an instance of type. The input color instance. The converted result The base class for converting between and color spaces. Returns the Ka coefficient that depends upon the whitepoint illuminant. The whitepoint The Returns the Kb coefficient that depends upon the whitepoint illuminant. The whitepoint The Color converter between and Default transformation matrix used, when no other is set. (Bradford) Initializes a new instance of the class. Initializes a new instance of the class. Definition of the cone response domain (see ), if not set will be used. Performs the conversion from the input to an instance of type. The input color instance. The converted result Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Initializes a new instance of the class. Initializes a new instance of the class. The target reference lab white point Gets the target reference whitepoint. When not set, is used. Performs the conversion from the input to an instance of type. The input color instance. The converted result Converts from to . Initializes a new instance of the class. Initializes a new instance of the class. The target reference luv white point Gets the target reference whitepoint. When not set, is used. Performs the conversion from the input to an instance of type. The input color instance. The converted result Calculates the blue-yellow chromacity based on the given whitepoint. The whitepoint The Calculates the red-green chromacity based on the given whitepoint. The whitepoint The Color converter between and Initializes a new instance of the class. Initializes a new instance of the class. The hunter Lab white point. Gets the target reference white. When not set, is used. Performs the conversion from the input to an instance of type. The input color instance. The converted result Color converter between and Initializes a new instance of the class. Initializes a new instance of the class. The target working space. Gets the target working space. Performs the conversion from the input to an instance of type. The input color instance. The converted result. Color converter between and . Performs the conversion from the input to an instance of type. The input color instance. The converted result Performs the conversion from the input to an instance of type. The input color instance. The converted result. Color converter between HSL and Rgb See for formulas. Performs the conversion from the input to an instance of type. The input color instance. The converted result Performs the conversion from the input to an instance of type. The input color instance. The converted result Gets the color component from the given values. The first value. The second value. The third value. The . Moves the specific value within the acceptable range for conversion. Used for converting colors to this type. The value to shift. The . Color converter between HSV and Rgb See for formulas. Performs the conversion from the input to an instance of type. The input color instance. The converted result Performs the conversion from the input to an instance of type. The input color instance. The converted result Color converter between and Performs the conversion from the input to an instance of type. The input color instance. The converted result Provides base methods for converting between and color spaces. Returns the correct matrix to convert between the Rgb and CieXyz color space. The Rgb working space. The based on the chromaticity and working space. Color converter between and Initializes a new instance of the class. Initializes a new instance of the class. The target working space. Gets the source working space Performs the conversion from the input to an instance of type. The input color instance. The converted result Color converter between and . Performs the conversion from the input to an instance of type. The input color instance. The converted result. Color converter between Rgb and LinearRgb. Performs the conversion from the input to an instance of type. The input color instance. The converted result. Color converter between and See for formulas. Performs the conversion from the input to an instance of type. The input color instance. The converted result. Performs the conversion from the input to an instance of type. The input color instance. The converted result. Chromatic adaptation. A linear transformation of a source color (XS, YS, ZS) into a destination color (XD, YD, ZD) by a linear transformation [M] which is dependent on the source reference white (XWS, YWS, ZWS) and the destination reference white (XWD, YWD, ZWD). Performs a linear transformation of a source color in to the destination color. Doesn't crop the resulting color space coordinates (e. g. allows negative values for XYZ coordinates). The source color. The source white point. The destination white point. The Performs a bulk linear transformation of a source color in to the destination color. Doesn't crop the resulting color space coordinates (e. g. allows negative values for XYZ coordinates). The span to the source colors. The span to the destination colors. The source white point. The destination white point. Matrices used for transformation from to , defining the cone response domain. Used in Matrix data obtained from: Two New von Kries Based Chromatic Adaptation Transforms Found by Numerical Optimization S. Bianco, R. Schettini DISCo, Department of Informatics, Systems and Communication, University of Milan-Bicocca, viale Sarca 336, 20126 Milan, Italy https://web.stanford.edu/~sujason/ColorBalancing/Papers/Two%20New%20von%20Kries%20Based%20Chromatic%20Adaptation.pdf Von Kries chromatic adaptation transform matrix (Hunt-Pointer-Estevez adjusted for D65) Von Kries chromatic adaptation transform matrix (Hunt-Pointer-Estevez for equal energy) XYZ scaling chromatic adaptation transform matrix Bradford chromatic adaptation transform matrix (used in CMCCAT97) Spectral sharpening and the Bradford transform CMCCAT2000 (fitted from all available color data sets) CAT02 (optimized for minimizing CIELAB differences) Represents the chromaticity coordinates of RGB primaries. One of the specifiers of . Initializes a new instance of the struct. The chromaticity coordinates of the red channel. The chromaticity coordinates of the green channel. The chromaticity coordinates of the blue channel. Gets the chromaticity coordinates of the red channel. Gets the chromaticity coordinates of the green channel. Gets the chromaticity coordinates of the blue channel. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Implementation of the von Kries chromatic adaptation model. Transformation described here: http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html Initializes a new instance of the class. Initializes a new instance of the class. The transformation matrix used for the conversion (definition of the cone response domain). Initializes a new instance of the class. The color converter The gamma working space. Initializes a new instance of the class. The gamma value. The reference white point. The chromaticity of the rgb primaries. Gets the gamma value. L* working space. Initializes a new instance of the class. The reference white point. The chromaticity of the rgb primaries. Rec. 2020 (ITU-R Recommendation BT.2020F) working space. Initializes a new instance of the class. The reference white point. The chromaticity of the rgb primaries. Rec. 709 (ITU-R Recommendation BT.709) working space. Initializes a new instance of the class. The reference white point. The chromaticity of the rgb primaries. Base class for all implementations of . Initializes a new instance of the class. The reference white point. The chromaticity of the rgb primaries. Gets the reference white point Gets the chromaticity of the rgb primaries. Expands a companded channel to its linear equivalent with respect to the energy. For more info see: The channel value. The representing the linear channel value. Compresses an uncompanded channel (linear) to its nonlinear equivalent (depends on the RGB color system). For more info see: The channel value. The representing the nonlinear channel value. The sRgb working space. Initializes a new instance of the class. The reference white point. The chromaticity of the rgb primaries. Represents a Hsl (hue, saturation, lightness) color. Gets the hue component. A value ranging between 0 and 360. Gets the saturation component. A value ranging between 0 and 1. Gets the lightness component. A value ranging between 0 and 1. Initializes a new instance of the struct. The h hue component. The s saturation component. The l value (lightness) component. Initializes a new instance of the struct. The vector representing the h, s, l components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Represents a HSV (hue, saturation, value) color. Also known as HSB (hue, saturation, brightness). Gets the hue component. A value ranging between 0 and 360. Gets the saturation component. A value ranging between 0 and 1. Gets the value (brightness) component. A value ranging between 0 and 1. Initializes a new instance of the struct. The h hue component. The s saturation component. The v value (brightness) component. Initializes a new instance of the struct. The vector representing the h, s, v components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Represents an Hunter LAB color. . D50 standard illuminant. Used when reference white is not specified explicitly. Gets the lightness dimension. A value usually ranging between 0 (black), 100 (diffuse white) or higher (specular white). Gets the a color component. A value usually ranging from -100 to 100. Negative is green, positive magenta. Gets the b color component. A value usually ranging from -100 to 100. Negative is blue, positive is yellow Gets the reference white point of this color. Initializes a new instance of the struct. The lightness dimension. The a (green - magenta) component. The b (blue - yellow) component. Uses as white point. Initializes a new instance of the struct. The lightness dimension. The a (green - magenta) component. The b (blue - yellow) component. The reference white point. Initializes a new instance of the struct. The vector representing the l, a, b components. Uses as white point. Initializes a new instance of the struct. The vector representing the l a b components. The reference white point. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. The well known standard illuminants. Standard illuminants provide a basis for comparing images or colors recorded under different lighting Coefficients taken from: http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html
Descriptions taken from: http://en.wikipedia.org/wiki/Standard_illuminant
Incandescent / Tungsten Direct sunlight at noon (obsoleteF) Average / North sky Daylight (obsoleteF) Horizon Light. ICC profile PCS Mid-morning / Mid-afternoon Daylight Noon Daylight: TelevisionF, sRGB color space North sky Daylight Equal energy Cool White Fluorescent D65 simulatorF, Daylight simulator Philips TL84F, Ultralume 40 Represents an linear Rgb color with specified working space The default LinearRgb working space. Gets the red component. A value usually ranging between 0 and 1. Gets the green component. A value usually ranging between 0 and 1. Gets the blue component. A value usually ranging between 0 and 1. Gets the LinearRgb color space Initializes a new instance of the struct. The red component ranging between 0 and 1. The green component ranging between 0 and 1. The blue component ranging between 0 and 1. Initializes a new instance of the struct. The red component ranging between 0 and 1. The green component ranging between 0 and 1. The blue component ranging between 0 and 1. The rgb working space. Initializes a new instance of the struct. The vector representing the r, g, b components. Initializes a new instance of the struct. The vector representing the r, g, b components. The LinearRgb working space. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Returns a new representing this instance. The . LMS is a color space represented by the response of the three types of cones of the human eye, named after their responsivity (sensitivity) at long, medium and short wavelengths. Gets the L long component. A value usually ranging between -1 and 1. Gets the M medium component. A value usually ranging between -1 and 1. Gets the S short component. A value usually ranging between -1 and 1. Initializes a new instance of the struct. L represents the responsivity at long wavelengths. M represents the responsivity at medium wavelengths. S represents the responsivity at short wavelengths. Initializes a new instance of the struct. The vector representing the l, m, s components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Returns a new representing this instance. The . Represents an RGB color with specified working space. The default rgb working space. Gets the red component. A value usually ranging between 0 and 1. Gets the green component. A value usually ranging between 0 and 1. Gets the blue component. A value usually ranging between 0 and 1. Gets the Rgb color space Initializes a new instance of the struct. The red component ranging between 0 and 1. The green component ranging between 0 and 1. The blue component ranging between 0 and 1. Initializes a new instance of the struct. The red component ranging between 0 and 1. The green component ranging between 0 and 1. The blue component ranging between 0 and 1. The rgb working space. Initializes a new instance of the struct. The vector representing the r, g, b components. Initializes a new instance of the struct. The vector representing the r, g, b components. The rgb working space. Allows the implicit conversion of an instance of to a . The instance of to convert. An instance of . Allows the implicit conversion of an instance of to a . The instance of to convert. An instance of . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Returns a new representing this instance. The . Chromaticity coordinates based on: sRgb working space. Uses proper companding function, according to: Simplified sRgb working space (uses gamma companding instead of ). See also . Rec. 709 (ITU-R Recommendation BT.709) working space. Rec. 2020 (ITU-R Recommendation BT.2020F) working space. ECI Rgb v2 working space. Adobe Rgb (1998) working space. Apple sRgb working space. Best Rgb working space. Beta Rgb working space. Bruce Rgb working space. CIE Rgb working space. ColorMatch Rgb working space. Don Rgb 4 working space. Ekta Space PS5 working space. NTSC Rgb working space. PAL/SECAM Rgb working space. ProPhoto Rgb working space. SMPTE-C Rgb working space. Wide Gamut Rgb working space. Represents an YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification for the JFIF use with Jpeg. Gets the Y luminance component. A value ranging between 0 and 255. Gets the Cb chroma component. A value ranging between 0 and 255. Gets the Cr chroma component. A value ranging between 0 and 255. Initializes a new instance of the struct. The y luminance component. The cb chroma component. The cr chroma component. Initializes a new instance of the struct. The vector representing the y, cb, cr components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. The byte order of the data stream. The big-endian byte order (Motorola). Most-significant byte comes first, and ends with the least-significant byte. The little-endian byte order (Intel). Least-significant byte comes first and ends with the most-significant byte. Common constants used throughout the project The epsilon value for comparing floating point numbers. The epsilon squared value for comparing floating point numbers. The exception that is thrown when the library tries to load an image, which has format or content that is invalid or unsupported by ImageSharp. Initializes a new instance of the class with the name of the parameter that causes this exception. The error message that explains the reason for this exception. Initializes a new instance of the class with a specified error message and the exception that is the cause of this exception. The error message that explains the reason for this exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The exception that is thrown when an error occurs when applying a process to an image. Initializes a new instance of the class. Initializes a new instance of the class with the name of the parameter that causes this exception. The error message that explains the reason for this exception. Initializes a new instance of the class with a specified error message and the exception that is the cause of this exception. The error message that explains the reason for this exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The exception that is thrown when the library tries to load an image which contains invalid content. Initializes a new instance of the class with the name of the parameter that causes this exception. The error message that explains the reason for this exception. Initializes a new instance of the class with the name of the parameter that causes this exception. The error message that explains the reason for this exception. The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. The exception that is thrown when the library tries to load an image which has an unknown format. Initializes a new instance of the class with the name of the parameter that causes this exception. The error message that explains the reason for this exception. Contains extension methods for Creates a object based on , having set to Extension methods for the type. Gets a string from the provided buffer data. The encoding. The buffer. The string. Encapsulates a series of time saving extension methods to the interface. Generates a sequence of integral numbers within a specified range. The start index, inclusive. A method that has one parameter and returns a calculating the end index. The incremental step. The that contains a range of sequential integral numbers. Generates a sequence of integral numbers within a specified range. The start index, inclusive. A method that has one parameter and returns a calculating the end index. The incremental step. The that contains a range of sequential integral numbers. Extension methods for the type. Writes data from a stream from the provided buffer. The stream. The buffer. The offset within the buffer to begin writing. The number of bytes to write to the stream. Reads data from a stream into the provided buffer. The stream. The buffer. The offset within the buffer where the bytes are read into. The number of bytes, if available, to read. The actual number of bytes read. Skips the number of bytes in the given stream. The stream. A byte offset relative to the origin parameter. Provides optimized static methods for common mathematical functions specific to color processing. Vector for converting pixel to gray value as specified by ITU-R Recommendation BT.709. Convert a pixel value to grayscale using ITU-R Recommendation BT.709. The vector to get the luminance from. The number of luminance levels (256 for 8 bit, 65536 for 16 bit grayscale images). Gets the luminance from the rgb components using the formula as specified by ITU-R Recommendation BT.709. The red component. The green component. The blue component. The . Gets the luminance from the rgb components using the formula as specified by ITU-R Recommendation BT.709. The red component. The green component. The blue component. The . Gets the luminance from the rgb components using the formula as specified by ITU-R Recommendation BT.709. The red component. The green component. The blue component. The . Scales a value from a 16 bit to an 8 bit equivalent. The 8 bit component value. The Scales a value from an 8 bit to an 16 bit equivalent. The 8 bit component value. The Returns how many bits are required to store the specified number of colors. Performs a Log2() on the value. The number of colors. The Returns how many colors will be created by the specified number of bits. The bit depth. The Transforms a vector by the given color matrix. The source vector. The transformation color matrix. Bulk variant of . The span of vectors The transformation color matrix. Common utility methods for working with enums. Converts the numeric representation of the enumerated constants to an equivalent enumerated object. The type of enum The value to parse The default value to return. The . Returns a value indicating whether the given enum has a flag of the given value. The type of enum. The value. The flag. The . Parses a hexadecimal string into a byte array without allocations. Throws on non-hexadecimal character. Adapted from https://source.dot.net/#System.Private.CoreLib/Convert.cs,c9e4fbeaca708991. The hexadecimal string to parse. The destination for the parsed bytes. Must be at least .Length / 2 bytes long. The number of bytes written to . Internal utilities intended to be only used in tests. This constant is useful to verify the target framework ImageSharp has been built against. Only intended to be used in tests! Contains methods for converting values between unit scales. The number of centimeters in a meter. 1 cm is equal to exactly 0.01 meters. The number of centimeters in an inch. 1 inch is equal to exactly 2.54 centimeters. The number of inches in a meter. 1 inch is equal to exactly 0.0254 meters. The default resolution unit value. Scales the value from centimeters to meters. The value to scale. The . Scales the value from meters to centimeters. The value to scale. The . Scales the value from meters to inches. The value to scale. The . Scales the value from inches to meters. The value to scale. The . Scales the value from centimeters to inches. The value to scale. The . Scales the value from inches to centimeters. The value to scale. The . Converts an to a . The EXIF profile containing the value. The Gets the exif profile resolution values. The resolution unit. The horizontal resolution value. The vertical resolution value. Global inlining options. Helps temporarily disable inlining for better profiler output. regardless of the build conditions. Provides optimized static methods for trigonometric, logarithmic, and other common mathematical functions. Determine the Greatest CommonDivisor (GCD) of two numbers. Determine the Least Common Multiple (LCM) of two numbers. See https://en.wikipedia.org/wiki/Least_common_multiple#Reduction_by_the_greatest_common_divisor. Calculates % 2 Calculates % 4 Calculates % 8 Fast (x mod m) calculator, with the restriction that should be power of 2. Returns the absolute value of a 32-bit signed integer. Uses bit shifting to speed up the operation compared to . A number that is greater than , but less than or equal to The Returns a specified number raised to the power of 2 A single-precision floating-point number The number raised to the power of 2. Returns a specified number raised to the power of 3 A single-precision floating-point number The number raised to the power of 3. Implementation of 1D Gaussian G(x) function The x provided to G(x). The spread of the blur. The Gaussian G(x) Returns the result of a normalized sine cardinal function for the given value. SinC(x) = sin(pi*x)/(pi*x). A single-precision floating-point number to calculate the result for. The sine cardinal of . Returns the value clamped to the inclusive range of min and max. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Returns the value clamped to the inclusive range of min and max. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Returns the value clamped to the inclusive range of min and max. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Returns the value clamped to the inclusive range of min and max. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Returns the value clamped to the inclusive range of min and max. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Returns the value clamped to the inclusive range of min and max. 5x Faster than on platforms < NET 5. The value to clamp. The minimum inclusive value. The maximum inclusive value. The clamped . Clamps the span values to the inclusive range of min and max. The span containing the values to clamp. The minimum inclusive value. The maximum inclusive value. Clamps the span values to the inclusive range of min and max. The span containing the values to clamp. The minimum inclusive value. The maximum inclusive value. Clamps the span values to the inclusive range of min and max. The span containing the values to clamp. The minimum inclusive value. The maximum inclusive value. Clamps the span values to the inclusive range of min and max. The span containing the values to clamp. The minimum inclusive value. The maximum inclusive value. Clamps the span values to the inclusive range of min and max. The span containing the values to clamp. The minimum inclusive value. The maximum inclusive value. Pre-multiplies the "x", "y", "z" components of a vector by its "w" component leaving the "w" component intact. The to premultiply Reverses the result of premultiplying a vector via . The to premultiply Bulk variant of The span of vectors Bulk variant of The span of vectors Calculates the cube pow of all the XYZ channels of the input vectors. The span of vectors Calculates the cube root of all the XYZ channels of the input vectors. The span of vectors Performs a linear interpolation between two values based on the given weighting. The first value. The second value. A value between 0 and 1 that indicates the weight of . The . Calculates floored log of the specified value, base 2. Note that by convention, input value 0 returns 0 since Log(0) is undefined. The value. Calculates floored log of the specified value, base 2. Note that by convention, input value 0 returns 0 since Log(0) is undefined. Bit hacking with deBruijn sequence, extremely fast yet does not use any intrinsics so will work on every platform/runtime. Description of this bit hacking can be found here: https://cstheory.stackexchange.com/questions/19524/using-the-de-bruijn-sequence-to-find-the-lceil-log-2-v-rceil-of-an-integer The value. Fast division with ceiling for numbers. Divident value. Divisor value. Ceiled division result. Rotates the specified value left by the specified number of bits. The value to rotate. The number of bits to rotate with. The rotated value. Rotates the specified value left by the specified number of bits. The value to rotate. The number of bits to rotate with. The rotated value. Rotates the specified value right by the specified number of bits. The value to rotate. The number of bits to rotate with. The rotated value. Rotates the specified value right by the specified number of bits. The value to rotate. The number of bits to rotate with. The rotated value. Tells whether input value is outside of the given range. Value. Mininum value, inclusive. Maximum value, inclusive. Provides information about the .NET runtime installation. Many methods defer to when available. Gets a value indicating whether the .NET installation is .NET Core 3.1 or lower. Gets the name of the .NET installation on which an app is running. Indicates whether the current application is running on the specified platform. Defines the contract for methods that allow the shuffling of pixel components. Used for shuffling on platforms that do not support Hardware Intrinsics. Gets the shuffle control. Shuffle 8-bit integers within 128-bit lanes in using the control and store the results in . The source span of bytes. The destination span of bytes. Implementation can assume that source.Length is less or equal than dest.Length. Loops should iterate using source.Length. Various extension and utility methods for and utilizing SIMD capabilities Implementation with 256bit / AVX2 intrinsics NOT depending on newer API-s (Vector.Widen etc.) SIMD optimized implementation for . Works only with span Length divisible by 8. Implementation adapted from: http://lolengine.net/blog/2011/3/20/understanding-fast-float-integer-conversions http://stackoverflow.com/a/536278 Implementation of which is faster on older runtimes. Convert all values normalized into [0..1] from 'source' into 'dest' buffer of . The values are scaled up into [0-255] and rounded. This implementation is SIMD optimized and works only when span Length is divisible by 8. Based on: http://lolengine.net/blog/2011/3/20/understanding-fast-float-integer-conversions Gets a value indicating whether code is being JIT-ed to AVX2 instructions where both float and integer registers are of size 256 byte. Gets a value indicating whether code is being JIT-ed to SSE instructions where float and integer registers are of size 128 byte. Transform all scalars in 'v' in a way that converting them to would have rounding semantics. The vector Rounds all values in 'v' to the nearest integer following semantics. Source: https://github.com/g-truc/glm/blob/master/glm/simd/common.h#L110 The vector Converts all input -s to -s normalized into [0..1]. should be the of the same size as , but there are no restrictions on the span's length. The source span of bytes The destination span of floats Convert all values normalized into [0..1] from 'source' into 'dest' buffer of . The values are scaled up into [0-255] and rounded, overflows are clamped. should be the of the same size as , but there are no restrictions on the span's length. The source span of floats The destination span of bytes Implementation methods based on newer API-s (Vector.Widen, Vector.Narrow, Vector.ConvertTo*). Only accelerated only on RyuJIT having dotnet/coreclr#10662 merged (.NET Core 2.1+ .NET 4.7.2+) See: https://github.com/dotnet/coreclr/pull/10662 API Proposal: https://github.com/dotnet/corefx/issues/15957 Widen and convert a vector of values into 2 vectors of -s. as many elements as possible, slicing them down (keeping the remainder). as many elements as possible, slicing them down (keeping the remainder). Implementation , which is faster on new RyuJIT runtime. Implementation of , which is faster on new .NET runtime. Fallback implementation based on (128bit). For , efficient software fallback implementations are present, and we hope that even mono's JIT is able to emit SIMD instructions for that type :P as many elements as possible, slicing them down (keeping the remainder). as many elements as possible, slicing them down (keeping the remainder). Implementation of using . Implementation of using . Shuffle single-precision (32-bit) floating-point elements in using the control and store the results in . The source span of floats. The destination span of floats. The byte control. Shuffle 8-bit integers within 128-bit lanes in using the control and store the results in . The source span of bytes. The destination span of bytes. The type of shuffle to perform. Shuffle 8-bit integer triplets within 128-bit lanes in using the control and store the results in . The source span of bytes. The destination span of bytes. The type of shuffle to perform. Pads then shuffles 8-bit integers within 128-bit lanes in using the control and store the results in . The source span of bytes. The destination span of bytes. The type of shuffle to perform. Shuffles then slices 8-bit integers within 128-bit lanes in using the control and store the results in . The source span of bytes. The destination span of bytes. The type of shuffle to perform. Implements basic math operations using tolerant comparison whenever an equality check is needed. A read-only default instance for using 1e-8 as epsilon. It is a field so it can be passed as an 'in' parameter. Does not necessarily fit all use cases! == 0 > 0 < 0 == > < >= <= Contains 8 element value tuples of various types. Extension methods for the type. Loads the fields in a target of from one of type. The target of instance. The source of instance. Loads the fields in a target of from one of type. The target of instance. The source of instance. Calculates the 32 bit Adler checksum of a given buffer according to RFC 1950. ZLIB Compressed Data Format Specification version 3.3) The default initial seed value of a Adler32 checksum calculation. Calculates the Adler32 checksum with the bytes taken from the span. The readonly span of bytes. The . Calculates the Adler32 checksum with the bytes taken from the span and seed. The input Adler32 value. The readonly span of bytes. The . Calculates the 32 bit Cyclic Redundancy Check (CRC) checksum of a given buffer according to the IEEE 802.3 specification. Contains precalulated tables for scalar calculations. The default initial seed value of a Crc32 checksum calculation. Calculates the CRC checksum with the bytes taken from the span. The readonly span of bytes. The . Calculates the CRC checksum with the bytes taken from the span and seed. The input CRC value. The readonly span of bytes. The . The table of all possible eight bit values for fast scalar lookup. Provides enumeration of available deflate compression levels. Level 0. Equivalent to . No compression. Equivalent to . Level 1. Equivalent to . Best speed compression level. Level 2. Level 3. Level 4. Level 5. Level 6. Equivalent to . The default compression level. Equivalent to . Level 7. Level 8. Level 9. Equivalent to . Best compression level. Equivalent to . This class compresses input with the deflate algorithm described in RFC 1951. It has several compression levels and three different strategies described below. The best and slowest compression level. This tries to find very long and distant string repetitions. The worst but fastest compression level. The default compression level. This level won't compress at all but output uncompressed blocks. The compression method. This is the only method supported so far. There is no need to use this constant at all. Compression level. The current state. Initializes a new instance of the class. The memory allocator to use for buffer allocations. The compression level, a value between NoCompression and BestCompression. if level is out of range. Compression Level as an enum for safer use The best and slowest compression level. This tries to find very long and distant string repetitions. The worst but fastest compression level. The default compression level. This level won't compress at all but output uncompressed blocks. The compression method. This is the only method supported so far. There is no need to use this constant at all. Gets a value indicating whetherthe stream was finished and no more output bytes are available. Gets a value indicating whether the input buffer is empty. You should then call setInput(). NOTE: This method can also return true when the stream was finished. Resets the deflater. The deflater acts afterwards as if it was just created with the same compression level and strategy as it had before. Flushes the current input block. Further calls to Deflate() will produce enough output to inflate everything in the current input block. It is used by DeflaterOutputStream to implement Flush(). Finishes the deflater with the current input block. It is an error to give more input after this method was called. This method must be called to force all bytes to be flushed. Sets the data which should be compressed next. This should be only called when needsInput indicates that more input is needed. The given byte array should not be changed, before needsInput() returns true again. The buffer containing the input data. The start of the data. The number of data bytes of input. if the buffer was finished or if previous input is still pending. Sets the compression level. There is no guarantee of the exact position of the change, but if you call this when needsInput is true the change of compression level will occur somewhere near before the end of the so far given input. the new compression level. Deflates the current input block to the given array. Buffer to store the compressed data. Offset into the output array. The maximum number of bytes that may be stored. The number of compressed bytes added to the output, or 0 if either or returns true or length is zero. This class contains constants used for deflation. Set to true to enable debugging Written to Zip file to identify a stored block Identifies static tree in Zip file Identifies dynamic tree in Zip file Header flag indicating a preset dictionary for deflation Sets internal buffer sizes for Huffman encoding Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Internal compression engine constant Strategies for deflater The default strategy This strategy will only allow longer string repetitions. It is useful for random data with a small character set. This strategy will not look for string repetitions at all. It only encodes with Huffman trees (which means, that more common characters get a smaller encoding. Low level compression engine for deflate algorithm which uses a 32K sliding window with secondary compression from Huffman/Shannon-Fano codes. Points to the current character in the window. lookahead is the number of characters starting at strstart in window that are valid. So window[strstart] until window[strstart+lookahead-1] are valid characters. The current compression function. The input data for compression. The offset into inputBuf, where input data starts. The end offset of the input data. Hashtable, hashing three characters to an index for window, so that window[index]..window[index+2] have this hash code. Note that the array should really be unsigned short, so you need to and the values with 0xFFFF. prev[index & WMASK] points to the previous index that has the same hash code as the string starting at index. This way entries with the same hash code are in a linked list. Note that the array should really be unsigned short, so you need to and the values with 0xFFFF. This array contains the part of the uncompressed stream that is of relevance. The current character is indexed by strstart. Initializes a new instance of the class. The memory allocator to use for buffer allocations. The deflate strategy to use. Gets the pending buffer to use. Deflate drives actual compression of data True to flush input buffers Finish deflation with the current input. Returns true if progress has been made. Sets input data to be deflated. Should only be called when returns true The buffer containing input data. The offset of the first byte of data. The number of bytes of data to use as input. Determines if more input is needed. Return true if input is needed via SetInput Reset internal state Set the deflate level (0-9) The value to set the level to. Fill the window Inserts the current string in the head hash and returns the previous value for this hash. The previous hash value Find the best (longest) string in the window matching the string starting at strstart. Preconditions: strstart + DeflaterConstants.MAX_MATCH <= window.length. The current match. True if a match greater than the minimum length is found Performs Deflate Huffman encoding. Initializes a new instance of the class. The memory allocator to use for buffer allocations. Gets the lengths of the bit length codes are sent in order of decreasing probability, to avoid transmitting the lengths for unused bit length codes. Gets the pending buffer to use. Reset internal state Write all trees to pending buffer The number/rank of treecodes to send. Compress current buffer writing data to pending buffer Flush block to output with no compression Data to write Index of first byte to write Count of bytes to write True if this is the last block Flush block to output with compression Data to flush Index of first byte to flush Count of bytes to flush True if this is the last block Get value indicating if internal buffer is full true if buffer is full Add literal to buffer Literal value to add to buffer. Value indicating internal buffer is full Add distance code and length to literal and distance trees Distance code Length Value indicating if internal buffer is full Reverse the bits of a 16 bit value. Value to reverse bits Value with bits reversed Resets the internal state of the tree Set static codes and length new codes length for new codes Build dynamic codes and lengths Get encoded length Encoded length, the sum of frequencies * lengths Scan a literal or distance tree to determine the frequencies of the codes in the bit length tree. Write the tree values. The pending buffer. The tree to write. A special stream deflating or compressing the bytes that are written to it. It uses a Deflater to perform actual deflating. Initializes a new instance of the class. The memory allocator to use for buffer allocations. The output stream where deflated output is written. The compression level. Stores pending data for writing data to the Deflater. Initializes a new instance of the class. The memory allocator to use for buffer allocations. Gets the number of bits written to the buffer. Gets a value indicating whether indicates the buffer has been flushed. Clear internal state/buffers. Write a short value to buffer LSB first. The value to write. Write a block of data to the internal buffer. The data to write. The offset of first byte to write. The number of bytes to write. Aligns internal buffer on a byte boundary. Write bits to internal buffer source of bits number of bits to write Write a short value to internal buffer most significant byte first The value to write Flushes the pending buffer into the given output array. If the output array is to small, only a partial flush is done. The output array. The offset into output array. The maximum number of bytes to store. The number of bytes flushed. Provides methods and properties for compressing streams by using the Zlib Deflate algorithm. The raw stream containing the uncompressed image data. Computes the checksum for the data stream. A value indicating whether this instance of the given entity has been disposed. if this instance has been disposed; otherwise, . If the entity is disposed, it must not be disposed a second time. The isDisposed field is set the first time the entity is disposed. If the isDisposed field is true, then the Dispose() method will not dispose again. This help not to prolong the entity's life in the Garbage Collector. The stream responsible for compressing the input stream. Initializes a new instance of the class. The memory allocator to use for buffer allocations. The stream to compress. The compression level. Initializes a new instance of the class. The memory allocator to use for buffer allocations. The stream to compress. The compression level. Provides methods and properties for deframing streams from PNGs. Used to read the Adler-32 and Crc-32 checksums. We don't actually use this for anything so it doesn't have to be threadsafe. A default delegate to get more data from the inner stream. The inner raw memory stream. A value indicating whether this instance of the given entity has been disposed. if this instance has been disposed; otherwise, . If the entity is disposed, it must not be disposed a second time. The isDisposed field is set the first time the entity is disposed. If the isDisposed field is true, then the Dispose() method will not dispose again. This help not to prolong the entity's life in the Garbage Collector. The current data remaining to be read. Delegate to get more data once we've exhausted the current data remaining. Initializes a new instance of the class. The inner raw stream. Initializes a new instance of the class. The inner raw stream. A delegate to get more data from the inner stream. Gets the compressed stream over the deframed inner stream. Adds new bytes from a frame found in the original stream. The current remaining data according to the chunk length. Whether the chunk to be inflated is a critical chunk. The . Provides configuration which allows altering default behaviour or extending the library. A lazily initialized configuration default instance. Initializes a new instance of the class. Initializes a new instance of the class. A collection of configuration modules to register. Gets the default instance. Gets or sets the maximum number of concurrent tasks enabled in ImageSharp algorithms configured with this instance. Initialized with by default. Gets or sets the size of the buffer to use when working with streams. Initialized with by default. Gets or sets a value indicating whether to force image buffers to be contiguous whenever possible. Contiguous allocations are not possible, if the image needs a buffer larger than . Gets a set of properties for the Configuration. This can be used for storing global settings and defaults to be accessible to processors. Gets the currently registered s. Gets or sets the position in a stream to use for reading when using a seekable stream as an image data source. Gets or the that is currently in use. Gets or sets the that is currently in use. Defaults to . Allocators are expensive, so it is strongly recommended to use only one busy instance per process. In case you need to customize it, you can ensure this by changing It's possible to reduce allocator footprint by assigning a custom instance created with , but note that since the default pooling allocators are expensive, it is strictly recommended to use a single process-wide allocator. You can ensure this by altering the allocator of , or by implementing custom application logic that manages allocator lifetime. If an allocator has to be dropped for some reason, shall be invoked after disposing all associated instances. Gets the maximum header size of all the formats. Gets or sets the filesystem helper for accessing the local file system. Gets or sets the working buffer size hint for image processors. The default value is 1MB. Currently only used by Resize. If the working buffer is expected to be discontiguous, min(WorkingBufferSizeHintInBytes, BufferCapacityInBytes) should be used. Gets or sets the image operations provider factory. Registers a new format provider. The configuration provider to call configure on. Creates a shallow copy of the . A new configuration instance. Creates the default instance with the following s preregistered: . . . . . The default configuration of . Represents the method to handle . Utilities to track memory usage and detect memory leaks from not disposing ImageSharp objects. Fires when an ImageSharp object's undisposed memory resource leaks to the finalizer. The event brings significant overhead, and is intended to be used for troubleshooting only. For production diagnostics, use . Gets a value indicating the total number of memory resource objects leaked to the finalizer. Gets the Bitmap identifier. The field used to identify the bitmap file: 0x42 0x41 (Hex code points for B and A). Gets the size of this header. Gets the offset to next OS2BMPARRAYFILEHEADER. This offset is calculated from the starting byte of the file. A value of zero indicates that this header is for the last image in the array list. Gets the width of the image display in pixels. Gets the height of the image display in pixels. Enumerates the available bits per pixel the bitmap encoder supports. 1 bit per pixel. 4 bits per pixel. 8 bits per pixel. Each pixel consists of 1 byte. 16 bits per pixel. Each pixel consists of 2 bytes. 24 bits per pixel. Each pixel consists of 3 bytes. 32 bits per pixel. Each pixel consists of 4 bytes. Defines the compression type of the image data in the bitmap file. Each image row has a multiple of four elements. If the row has less elements, zeros will be added at the right side. The format depends on the number of bits, stored in the info header. If the number of bits are one, four or eight each pixel data is a index to the palette. If the number of bits are sixteen, twenty-four or thirty-two each pixel contains a color. Two bytes are one data record. If the first byte is not zero, the next byte will be repeated as much as the value of the first byte. If the first byte is zero, the record has different meanings, depending on the second byte. If the second byte is zero, it is the end of the row, if it is one, it is the end of the image. Two bytes are one data record. If the first byte is not zero, the next two half bytes will be repeated as much as the value of the first byte. If the first byte is zero, the record has different meanings, depending on the second byte. If the second byte is zero, it is the end of the row, if it is one, it is the end of the image. Each image row has a multiple of four elements. If the row has less elements, zeros will be added at the right side. The bitmap contains a JPG image. Not supported at the moment. The bitmap contains a PNG image. Not supported at the moment. Introduced with Windows CE. Specifies that the bitmap is not compressed and that the color table consists of four DWORD color masks that specify the red, green, blue, and alpha components of each pixel. OS/2 specific compression type. Similar to run length encoding of 4 and 8 bit. The only difference is that run values encoded are three bytes in size (one byte per RGB color component), rather than four or eight bits in size. Note: Because compression value of 4 is ambiguous for BI_RGB for windows and RLE24 for OS/2, the enum value is remapped to a different value, to be clearly separate from valid windows values. Registers the image encoders, decoders and mime type detectors for the bmp format. Defines constants relating to BMPs The list of mimetypes that equate to a bmp. The list of file extensions that equate to a bmp. Valid magic bytes markers identifying a Bitmap file. Single-image BMP file that may have been created under Windows or OS/2. OS/2 Bitmap Array. OS/2 Color Icon. OS/2 Color Pointer. OS/2 Icon. OS/2 Pointer. Image decoder for generating an image out of a Windows bitmap stream. Does not support the following formats at the moment: JPG PNG Some OS/2 specific subtypes like: Bitmap Array, Color Icon, Color Pointer, Icon, Pointer. Formats will be supported in a later releases. We advise always to use only 24 Bit Windows bitmaps. Gets or sets a value indicating how to deal with skipped pixels, which can occur during decoding run length encoded bitmaps. Performs the bitmap decoding operation. A useful decoding source example can be found at The default mask for the red part of the color for 16 bit rgb bitmaps. The default mask for the green part of the color for 16 bit rgb bitmaps. The default mask for the blue part of the color for 16 bit rgb bitmaps. RLE flag value that indicates following byte has special meaning. RLE flag value marking end of a scan line. RLE flag value marking end of bitmap data. RLE flag value marking the start of [x,y] offset instruction. The stream to decode from. The metadata. The bitmap specific metadata. The file header containing general information. Indicates which bitmap file marker was read. The info header containing detailed information about the bitmap. Used for allocating memory during processing operations. The bitmap decoder options. Initializes a new instance of the class. The configuration. The options. Gets the dimensions of the image. Returns the y- value based on the given height. The y- value representing the current row. The height of the bitmap. Whether the bitmap is inverted. The representing the inverted value. Calculates the amount of bytes to pad a row. The image width. The pixel component count. The padding. Decodes a bitmap containing the BITFIELDS Compression type. For each color channel, there will be a bitmask which will be used to determine which bits belong to that channel. The pixel format. The output pixel buffer containing the decoded image. Whether the bitmap is inverted. Looks up color values and builds the image from de-compressed RLE8 or RLE4 data. Compressed RLE8 stream is uncompressed by Compressed RLE4 stream is uncompressed by The pixel format. The compression type. Either RLE4 or RLE8. The to assign the palette to. The containing the colors. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. Looks up color values and builds the image from de-compressed RLE24. The pixel format. The to assign the palette to. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. Produce uncompressed bitmap data from a RLE4 stream. RLE4 is a 2-byte run-length encoding.
If first byte is 0, the second byte may have special meaning.
Otherwise, the first byte is the length of the run and second byte contains two color indexes.
The width of the bitmap. Buffer for uncompressed data. Keeps track over skipped and therefore undefined pixels. Keeps track of rows, which have undefined pixels.
Produce uncompressed bitmap data from a RLE8 stream. RLE8 is a 2-byte run-length encoding.
If first byte is 0, the second byte may have special meaning.
Otherwise, the first byte is the length of the run and second byte is the color for the run.
The width of the bitmap. Buffer for uncompressed data. Keeps track of skipped and therefore undefined pixels. Keeps track of rows, which have undefined pixels.
Produce uncompressed bitmap data from a RLE24 stream.
If first byte is 0, the second byte may have special meaning.
Otherwise, the first byte is the length of the run and following three bytes are the color for the run.
The width of the bitmap. Buffer for uncompressed data. Keeps track of skipped and therefore undefined pixels. Keeps track of rows, which have undefined pixels.
Keeps track of skipped / undefined pixels, when the EndOfBitmap command occurs. The already processed pixel count. The width of the image. The skipped pixel count. The undefined pixels. Rows with undefined pixels. Keeps track of undefined / skipped pixels, when the EndOfLine command occurs. The already uncompressed pixel count. The width of image. The undefined pixels. The rows with undefined pixels. The number of skipped pixels. Keeps track of undefined / skipped pixels, when the delta command occurs. The count. The width of the image. Delta skip in x direction. Delta skip in y direction. The undefined pixels. The rows with undefined pixels. The number of skipped pixels. Reads the color palette from the stream. The pixel format. The to assign the palette to. The containing the colors. The width of the bitmap. The height of the bitmap. The number of bits per pixel. Usually 4 bytes, but in case of Windows 2.x bitmaps or OS/2 1.x bitmaps the bytes per color palette entry's can be 3 bytes instead of 4. Whether the bitmap is inverted. Reads the 16 bit color palette from the stream. The pixel format. The to assign the palette to. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. The bitmask for the red channel. The bitmask for the green channel. The bitmask for the blue channel. Performs final shifting from a 5bit value to an 8bit one. The masked and shifted value. The Performs final shifting from a 6bit value to an 8bit one. The masked and shifted value. The Reads the 24 bit color palette from the stream. The pixel format. The to assign the palette to. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. Reads the 32 bit color palette from the stream. The pixel format. The to assign the palette to. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. Reads the 32 bit color palette from the stream, checking the alpha component of each pixel. This is a special case only used for 32bpp WinBMPv3 files, which could be in either BGR0 or BGRA format. The pixel format. The to assign the palette to. The width of the bitmap. The height of the bitmap. Whether the bitmap is inverted. Decode an 32 Bit Bitmap containing a bitmask for each color channel. The pixel format. The output pixel buffer containing the decoded image. The width of the image. The height of the image. Whether the bitmap is inverted. The bitmask for the red channel. The bitmask for the green channel. The bitmask for the blue channel. The bitmask for the alpha channel. Calculates the necessary right shifts for a given color bitmask (the 0 bits to the right). The color bit mask. Number of bits to shift right. Counts none zero bits. A color mask. The none zero bits. Reads the from the stream. Reads the from the stream. Reads the and from the stream and sets the corresponding fields. Bytes per color palette entry. Usually 4 bytes, but in case of Windows 2.x bitmaps or OS/2 1.x bitmaps the bytes per color palette entry's can be 3 bytes instead of 4. Image encoder for writing an image to a stream as a Windows bitmap. Gets or sets the number of bits per pixel. Gets or sets a value indicating whether the encoder should support transparency. Note: Transparency support only works together with 32 bits per pixel. This option will change the default behavior of the encoder of writing a bitmap version 3 info header with no compression. Instead a bitmap version 4 info header will be written with the BITFIELDS compression. Gets or sets the quantizer for reducing the color count for 8-Bit images. Defaults to Wu Quantizer. Image encoder for writing an image to a stream as a Windows bitmap. The amount to pad each row by. The mask for the alpha channel of the color for 32 bit rgba bitmaps. The mask for the red part of the color for 32 bit rgba bitmaps. The mask for the green part of the color for 32 bit rgba bitmaps. The mask for the blue part of the color for 32 bit rgba bitmaps. The color palette for an 8 bit image will have 256 entry's with 4 bytes for each entry. The color palette for an 4 bit image will have 16 entry's with 4 bytes for each entry. The color palette for an 1 bit image will have 2 entry's with 4 bytes for each entry. Used for allocating memory during processing operations. The global configuration. The color depth, in number of bits per pixel. A bitmap v4 header will only be written, if the user explicitly wants support for transparency. In this case the compression type BITFIELDS will be used. Otherwise a bitmap v3 header will be written, which is supported by almost all decoders. The quantizer for reducing the color count for 8-Bit, 4-Bit and 1-Bit images. Initializes a new instance of the class. The encoder options. The memory manager. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Writes the pixel data to the binary stream. The pixel format. The to write to. The containing pixel data. Writes the 32bit color palette to the stream. The pixel format. The to write to. The containing pixel data. Writes the 24bit color palette to the stream. The pixel format. The to write to. The containing pixel data. Writes the 16bit color palette to the stream. The type of the pixel. The to write to. The containing pixel data. Writes an 8 bit image with a color palette. The color palette has 256 entry's with 4 bytes for each entry. The type of the pixel. The to write to. The containing pixel data. Writes an 8 bit color image with a color palette. The color palette has 256 entry's with 4 bytes for each entry. The type of the pixel. The to write to. The containing pixel data. A byte span of size 1024 for the color palette. Writes an 8 bit gray image with a color palette. The color palette has 256 entry's with 4 bytes for each entry. The type of the pixel. The to write to. The containing pixel data. A byte span of size 1024 for the color palette. Writes an 4 bit color image with a color palette. The color palette has 16 entry's with 4 bytes for each entry. The type of the pixel. The to write to. The containing pixel data. Writes a 1 bit image with a color palette. The color palette has 2 entry's with 4 bytes for each entry. The type of the pixel. The to write to. The containing pixel data. Writes the color palette to the stream. The color palette has 4 bytes for each entry. The type of the pixel. The to write to. The color palette from the quantized image. A temporary byte span to write the color palette to. Writes a 1-bit palette. The stream to write the palette to. The start index. The end index. A quantized pixel row. Stores general information about the Bitmap file. The first two bytes of the Bitmap file format (thus the Bitmap header) are stored in big-endian order. All of the other integer values are stored in little-endian format (i.e. least-significant byte first). Defines the size of the data structure in the bitmap file. Gets the Bitmap identifier. The field used to identify the bitmap file: 0x42 0x4D (Hex code points for B and M) Gets the size of the bitmap file in bytes. Gets any reserved data; actual value depends on the application that creates the image. Gets the offset, i.e. starting address, of the byte where the bitmap data can be found. Indicates which bitmap file marker was read. Single-image BMP file that may have been created under Windows or OS/2. OS/2 Bitmap Array. OS/2 Color Icon. OS/2 Color Pointer. OS/2 Icon. OS/2 Pointer. Registers the image encoders, decoders and mime type detectors for the bmp format. Gets the current instance. Detects bmp file headers. This block of bytes tells the application detailed information about the image, which will be used to display the image on the screen. Defines the size of the BITMAPCOREHEADER data structure in the bitmap file. Defines the size of the short variant of the OS22XBITMAPHEADER data structure in the bitmap file. Defines the size of the BITMAPINFOHEADER (BMP Version 3) data structure in the bitmap file. Special case of the BITMAPINFOHEADER V3 used by adobe where the color bitmasks are part of the info header instead of following it. Special case of the BITMAPINFOHEADER V3 used by adobe where the color bitmasks (including the alpha channel) are part of the info header instead of following it. Size of a IBM OS/2 2.x bitmap header. Defines the size of the BITMAPINFOHEADER (BMP Version 4) data structure in the bitmap file. Defines the size of the BITMAPINFOHEADER (BMP Version 5) data structure in the bitmap file. Defines the size of the biggest supported header data structure in the bitmap file. Defines the size of the field. Gets or sets the size of this header. Gets or sets the bitmap width in pixels (signed integer). Gets or sets the bitmap height in pixels (signed integer). Gets or sets the number of color planes being used. Must be set to 1. Gets or sets the number of bits per pixel, which is the color depth of the image. Typical values are 1, 4, 8, 16, 24 and 32. Gets or sets the compression method being used. See the next table for a list of possible values. Gets or sets the image size. This is the size of the raw bitmap data (see below), and should not be confused with the file size. Gets or sets the horizontal resolution of the image. (pixel per meter, signed integer) Gets or sets the vertical resolution of the image. (pixel per meter, signed integer) Gets or sets the number of colors in the color palette, or 0 to default to 2^n. Gets or sets the number of important colors used, or 0 when every color is important{ get; set; } generally ignored. Gets or sets red color mask. This is used with the BITFIELDS decoding. Gets or sets green color mask. This is used with the BITFIELDS decoding. Gets or sets blue color mask. This is used with the BITFIELDS decoding. Gets or sets alpha color mask. This is not used yet. Gets or sets the Color space type. Not used yet. Gets or sets the X coordinate of red endpoint. Not used yet. Gets or sets the Y coordinate of red endpoint. Not used yet. Gets or sets the Z coordinate of red endpoint. Not used yet. Gets or sets the X coordinate of green endpoint. Not used yet. Gets or sets the Y coordinate of green endpoint. Not used yet. Gets or sets the Z coordinate of green endpoint. Not used yet. Gets or sets the X coordinate of blue endpoint. Not used yet. Gets or sets the Y coordinate of blue endpoint. Not used yet. Gets or sets the Z coordinate of blue endpoint. Not used yet. Gets or sets the Gamma red coordinate scale value. Not used yet. Gets or sets the Gamma green coordinate scale value. Not used yet. Gets or sets the Gamma blue coordinate scale value. Not used yet. Parses the BITMAPCOREHEADER (BMP Version 2) consisting of the headerSize, width, height, planes, and bitsPerPixel fields (12 bytes). The data to parse. The parsed header. Parses a short variant of the OS22XBITMAPHEADER. It is identical to the BITMAPCOREHEADER, except that the width and height are 4 bytes instead of 2, resulting in 16 bytes total. The data to parse. The parsed header. Parses the full BMP Version 3 BITMAPINFOHEADER header (40 bytes). The data to parse. The parsed header. Special case of the BITMAPINFOHEADER V3 used by adobe where the color bitmasks are part of the info header instead of following it. 52 bytes without the alpha mask, 56 bytes with the alpha mask. The data to parse. Indicates, if the alpha bitmask is present. The parsed header. Parses a OS/2 version 2 bitmap header (64 bytes). Only the first 40 bytes are parsed which are very similar to the Bitmap v3 header. The other 24 bytes are ignored, but they do not hold any useful information for decoding the image. The data to parse. The parsed header. Parses the full BMP Version 4 BITMAPINFOHEADER header (108 bytes). The data to parse. The parsed header. Writes a bitmap version 3 (Microsoft Windows NT) header to a buffer (40 bytes). The buffer to write to. Writes a complete Bitmap V4 header to a buffer. The buffer to write to. Enum value for the different bitmap info header types. The enum value is the number of bytes for the specific bitmap header. Bitmap Core or BMP Version 2 header (Microsoft Windows 2.x). Short variant of the OS/2 Version 2 bitmap header. BMP Version 3 header (Microsoft Windows 3.x or Microsoft Windows NT). Adobe variant of the BMP Version 3 header. Adobe variant of the BMP Version 3 header with an alpha mask. BMP Version 2.x header (IBM OS/2 2.x). BMP Version 4 header (Microsoft Windows 95). BMP Version 5 header (Windows NT 5.0, 98 or later). Provides Bmp specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the bitmap info header type. Gets or sets the number of bits per pixel. Cold path optimization for throwing 's The error message for the exception. Cold path optimization for throwing 's The error message for the exception. Image decoder options for decoding Windows bitmap streams. Gets the value indicating how to deal with skipped pixels, which can occur during decoding run length encoded bitmaps. Configuration options for use during bmp encoding. Gets the number of bits per pixel. Gets a value indicating whether the encoder should support transparency. Note: Transparency support only works together with 32 bits per pixel. This option will change the default behavior of the encoder of writing a bitmap version 3 info header with no compression. Instead a bitmap version 4 info header will be written with the BITFIELDS compression. Gets the quantizer for reducing the color count for 8-Bit, 4-Bit, and 1-Bit images. Defines possible options, how skipped pixels during decoding of run length encoded bitmaps should be treated. Undefined pixels should be black. This is the default behavior and equal to how System.Drawing handles undefined pixels. Undefined pixels should be transparent. Undefined pixels should have the first color of the palette. Provides enumeration for the available color table modes. A single color table is calculated from the first frame and reused for subsequent frames. A unique color table is calculated for each frame. Registers the image encoders, decoders and mime type detectors for the gif format. Constants that define specific points within a Gif. The file type. The file version. The extension block introducer !. The graphic control label. The application extension label. The application block size. The application identification. The Netscape looping application sub block size. The comment label. The maximum length of a comment data sub-block is 255. The image descriptor label ,. The plain text label. The image label introducer ,. The terminator. The end introducer trailer ;. The character encoding to use when reading and writing comments - (ASCII 7bit). The collection of mimetypes that equate to a Gif. The collection of file extensions that equate to a Gif. Gets the ASCII encoded bytes used to identify the GIF file (combining and ). Gets the ASCII encoded application identification bytes (representing ). Gets the ASCII encoded application identification bytes. Decoder for generating an image out of a gif encoded stream. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Gets or sets the decoding mode for multi-frame images Performs the gif decoding operation. The temp buffer used to reduce allocations. The currently loaded stream. The global color table. The area to restore. The logical screen descriptor. The graphics control extension. The image descriptor. The abstract metadata. The gif specific metadata. Initializes a new instance of the class. The configuration. The decoder options. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoding mode for multi-frame images. Gets the dimensions of the image. Reads the graphic control extension. Reads the image descriptor. Reads the logical screen descriptor. Reads the application extension block parsing any animation or XMP information if present. Skips over a block or reads its terminator. The length of the block to skip. Reads the gif comments. Reads an individual gif frame. The pixel format. The image to decode the information to. The previous frame. Reads the frame indices marking the color to use for each pixel. The 2D pixel buffer to write to. Reads the frames colors, mapping indices to colors. The pixel format. The image to decode the information to. The previous frame. The indexed pixels. The color table containing the available colors. The Restores the current frame area to the background. The pixel format. The frame. Sets the frames metadata. The metadata. Reads the logical screen descriptor and global color table blocks The stream containing image data. Provides enumeration for instructing the decoder what to do with the last image in an animation sequence. section 23 No disposal specified. The decoder is not required to take any action. Do not dispose. The graphic is to be left in place. Restore to background color. The area used by the graphic must be restored to the background color. Restore to previous. The decoder is required to restore the area overwritten by the graphic with what was there prior to rendering the graphic. Image encoder for writing image data to a stream in gif format. Gets or sets the quantizer for reducing the color count. Defaults to the Gets or sets the color table mode: Global or local. Gets or sets the used for quantization when building a global color table in case of . Implements the GIF encoding protocol. Used for allocating memory during processing operations. Configuration bound to the encoding operation. A reusable buffer used to reduce allocations. The quantizer used to generate the color palette. The color table mode: Global or local. The number of bits requires to store the color palette. The pixel sampling strategy for global quantization. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The options for the encoder. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Returns the index of the most transparent color in the palette. The quantized frame. The pixel format. The . Writes the file header signature and version to the stream. The stream to write to. Writes the logical screen descriptor to the stream. The image metadata. The image width. The image height. The transparency index to set the default background index to. Whether to use a global or local color table. The stream to write to. Writes the application extension to the stream. The stream to write to. The frame count fo this image. The animated image repeat count. The XMP metadata profile. Null if profile is not to be written. Writes the image comments to the stream. The metadata to be extract the comment data. The stream to write to. Writes a comment sub-block to the stream. The stream to write to. Comment as a Span. Current start index. The length of the string to write. Should not exceed 255 bytes. Writes the graphics control extension to the stream. The metadata of the image or frame. The index of the color in the color palette to make transparent. The stream to write to. Writes the provided extension to the stream. The extension to write to the stream. The stream to write to. Writes the image descriptor to the stream. The pixel format. The to be encoded. Whether to use the global color table. The stream to write to. Writes the color table to the stream. The pixel format. The to encode. The stream to write to. Writes the image pixel data to the stream. The pixel format. The containing indexed pixels. The stream to write to. Registers the image encoders, decoders and mime type detectors for the gif format. Gets the current instance. Provides Gif specific metadata information for the image frame. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the length of the color table for paletted images. If not 0, then this field indicates the maximum number of colors to use when quantizing the image frame. Gets or sets the frame delay for animated images. If not 0, when utilized in Gif animation, this field specifies the number of hundredths (1/100) of a second to wait before continuing with the processing of the Data Stream. The clock starts ticking immediately after the graphic is rendered. Gets or sets the disposal method for animated images. Primarily used in Gif animation, this field indicates the way in which the graphic is to be treated after being displayed. Detects gif file headers Provides Gif specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the number of times any animation is repeated. 0 means to repeat indefinitely, count is set as repeat n-1 times. Defaults to 1. Gets or sets the color table mode. Gets or sets the length of the global color table if present. Gets or sets the the collection of comments about the graphics, credits, descriptions or any other type of non-control and non-graphic data. Cold path optimization for throwing 's The error message for the exception. Cold path optimization for throwing 's. The error message for the exception. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Decoder for generating an image out of a gif encoded stream. Gets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoding mode for multi-frame images. The configuration options used for encoding gifs. Gets the quantizer used to generate the color palette. Gets the color table mode: Global or local. Gets the used for quantization when building a global color table. Decompresses and decodes data using the dynamic LZW algorithms. The max decoder pixel stack size. The null code. The stream to decode. The prefix buffer. The suffix buffer. The pixel stack buffer. Initializes a new instance of the class and sets the stream, where the compressed data should be read from. The to use for buffer allocations. The stream to read from. is null. Decodes and decompresses all pixel indices from the stream. Minimum code size of the data. The pixel array to decode to. Reads the next data block from the stream. A data block begins with a byte, which defines the size of the block, followed by the block itself. The buffer to store the block in. The . Encodes and compresses the image data using dynamic Lempel-Ziv compression. Adapted from Jef Poskanzer's Java port by way of J. M. G. Elliott. K Weiner 12/00 GIFCOMPR.C - GIF Image compression routines Lempel-Ziv compression based on 'compress'. GIF modifications by David Rowley (mgardi@watdcsu.waterloo.edu) GIF Image compression - modified 'compress' Based on: compress.c - File compression ala IEEE Computer, June 1984. By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas) Jim McKie (decvax!mcvax!jim) Steve Davies (decvax!vax135!petsd!peora!srd) Ken Turkowski (decvax!decwrl!turtlevax!ken) James A. Woods (decvax!ihnp4!ames!jaw) Joe Orost (decvax!vax135!petsd!joe) 80% occupancy The amount to shift each code. Mask used when shifting pixel values The maximum number of bits/code. Should NEVER generate this code. The initial code size. The hash table. The code table. Define the storage for the packet accumulator. Number of bits/code maximum code, given bitCount First unused entry Block compression parameters -- after all codes are used up, and compression rate changes, start over. Algorithm: use open addressing double hashing (no chaining) on the prefix code / next character combination. We do a variant of Knuth's algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime secondary probe. Here, the modular division first probe is gives way to a faster exclusive-or manipulation. Also do block compression with an adaptive reset, whereby the code table is cleared when the compression ratio decreases, but after the table fills. The variable-length output codes are re-sized at this point, and a special CLEAR code is generated for the decompressor. Late addition: construct the table according to file size for noticeable speed improvement on small files. Please direct questions about this implementation to ames!jaw. The clear code. The end-of-file code. Output the given code. Inputs: code: A bitCount-bit integer. If == -1, then EOF. This assumes that bitCount =< wordsize - 1. Outputs: Outputs code to the file. Assumptions: Chars are 8 bits long. Algorithm: Maintain a BITS character long buffer (so that 8 codes will fit in it exactly). Use the VAX insv instruction to insert each code in turn. When the buffer fills up empty it and start over. The current bits. Number of characters so far in this 'packet' Initializes a new instance of the class. The to use for buffer allocations. The color depth in bits. Encodes and compresses the indexed pixels to the stream. The 2D buffer of indexed pixels. The stream to write to. Gets the maximum code value. The number of bits See Add a character to the end of the current packet, and if it is 254 characters, flush the packet to disk. The character to add. The reference to the storage for packet accumulators The stream to write to. Table clear for block compress. The output stream. Reset the code table. Compress the packets to the stream. The 2D buffer of indexed pixels. The initial bits. The stream to write to. Flush the packet to disk and reset the accumulator. The output stream. Output the current code to the stream. The code. The stream to write to. The Graphic Control Extension contains parameters used when processing a graphic rendering block. Gets the size of the block. Gets the packed disposalMethod and transparencyFlag value. Gets the delay time in of hundredths (1/100) of a second to wait before continuing with the processing of the Data Stream. The clock starts ticking immediately after the graphic is rendered. Gets the transparency index. The Transparency Index is such that when encountered, the corresponding pixel of the display device is not modified and processing goes on to the next pixel. Gets the disposal method which indicates the way in which the graphic is to be treated after being displayed. Gets a value indicating whether transparency flag is to be set. This indicates whether a transparency index is given in the Transparent Index field. Each image in the Data Stream is composed of an Image Descriptor, an optional Local Color Table, and the image data. Each image must fit within the boundaries of the Logical Screen, as defined in the Logical Screen Descriptor. Gets the column number, in pixels, of the left edge of the image, with respect to the left edge of the Logical Screen. Leftmost column of the Logical Screen is 0. Gets the row number, in pixels, of the top edge of the image with respect to the top edge of the Logical Screen. Top row of the Logical Screen is 0. Gets the width of the image in pixels. Gets the height of the image in pixels. Gets the packed value of localColorTableFlag, interlaceFlag, sortFlag, and localColorTableSize. The Logical Screen Descriptor contains the parameters necessary to define the area of the display device within which the images will be rendered Gets the width, in pixels, of the Logical Screen where the images will be rendered in the displaying device. Gets the height, in pixels, of the Logical Screen where the images will be rendered in the displaying device. Gets the packed value consisting of: globalColorTableFlag, colorResolution, sortFlag, and sizeOfGlobalColorTable. Gets the index at the Global Color Table for the Background Color. The Background Color is the color used for those pixels on the screen that are not covered by an image. Gets the pixel aspect ratio. Gets a value indicating whether a flag denoting the presence of a Global Color Table should be set. If the flag is set, the Global Color Table will included after the Logical Screen Descriptor. Gets the global color table size. If the Global Color Table Flag is set, the value in this field is used to calculate the number of bytes contained in the Global Color Table. Gets the color depth, in number of bits per pixel. The lowest 3 packed bits represent the bit depth minus 1. Gets the repeat count. 0 means loop indefinitely. Count is set as play n + 1 times. Gets the raw Data. Reads the XMP metadata from the specified stream. The stream to read from. The memory allocator. The XMP metadata Thrown if the XMP block is not properly terminated. A base interface for GIF extensions. Gets the label identifying the extensions. Gets the length of the contents of this extension. Writes the extension data to the buffer. The buffer to write the extension to. The number of bytes written to the buffer. Encapsulates properties and methods required for decoding an image from a stream. Decodes the image from the specified stream to an of a specific pixel type. The pixel format. The configuration for the image. The containing image data. The token to monitor for cancellation requests. The . Decodes the image from the specified stream to an . The configuration for the image. The containing image data. The token to monitor for cancellation requests. The . Abstraction for shared internals for ***DecoderCore implementations to be used with . Gets the associated configuration. Gets the dimensions of the image being decoded. Decodes the image from the specified stream. The pixel format. The stream, where the image should be decoded from. Cannot be null. The token to monitor for cancellation requests. is null. The decoded image. Cancellable synchronous method. In case of cancellation, an shall be thrown which will be handled on the call site. Reads the raw image information from the specified stream. The containing image data. The token to monitor for cancellation requests. The . Cancellable synchronous method. In case of cancellation, an shall be thrown which will be handled on the call site. Encapsulates properties and methods required for encoding an image to a stream. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to monitor for cancellation requests. A representing the asynchronous operation. Abstraction for shared internals for ***DecoderCore implementations to be used with . Encodes the image. The image. The stream. The token to monitor for cancellation requests. The pixel type. Defines the contract for an image format. Gets the name that describes this image format. Gets the default mimetype that the image format uses Gets all the mimetypes that have been used by this image format. Gets the file extensions this image format commonly uses. Defines the contract for an image format containing metadata. The type of format metadata. Creates a default instance of the format metadata. The . Defines the contract for an image format containing metadata with multiple frames. The type of format metadata. The type of format frame metadata. Creates a default instance of the format frame metadata. The . Used for detecting mime types from a file header Gets the size of the header for this image type. The size of the header. Detect mimetype The containing the file header. returns the mime type of detected otherwise returns null Encapsulates methods used for detecting the raw image information without fully decoding it. Reads the raw image information from the specified stream. The configuration for the image. The containing image data. The token to monitor for cancellation requests. The object Collection of Image Formats to be used in class. Used for locking against as there is no ConcurrentSet type. The list of supported keyed to mime types. The list of supported keyed to mime types. The list of supported s. The list of supported s. Initializes a new instance of the class. Gets the maximum header size of all the formats. Gets the currently registered s. Gets the currently registered s. Gets the currently registered s. Gets the currently registered s. Registers a new format provider. The format to register as a known format. For the specified file extensions type find the e . The extension to discover The if found otherwise null For the specified mime type find the . The mime-type to discover The if found; otherwise null Sets a specific image encoder as the encoder for a specific image format. The image format to register the encoder for. The encoder to use, Sets a specific image decoder as the decoder for a specific image format. The image format to register the encoder for. The decoder to use, Removes all the registered image format detectors. Adds a new detector for detecting mime types. The detector to add For the specified mime type find the decoder. The format to discover The if found otherwise null For the specified mime type find the encoder. The format to discover The if found otherwise null Sets the max header size. 8x8 matrix of coefficients. A number of scalar coefficients in a A placeholder buffer so the actual struct occupies exactly 64 * 2 bytes. This is not used directly in the code. Gets or sets a value at the given index The index The value Gets or sets a value in a row+column of the 8x8 block The x position index in the row The column index The value Convert to Copy all elements to an array of . Copy elements into 'destination' Span of values Copy elements into 'destination' Span of values Load raw 16bit integers from source. Source Cast and copy -s from the beginning of 'source' span. Returns index of the last non-zero element in given matrix. Index of the last non-zero element. Returns -1 if all elements are equal to zero. Transpose the block inplace. Calculate the total sum of absolute differences of elements in 'a' and 'b'. 8x8 matrix of coefficients. A number of scalar coefficients in a Get/Set scalar elements at a given index The index The float value at the specified index Load raw 32bit floating point data from source. Source Load raw 32bit floating point data from source Source Copy raw 32bit floating point data to dest Destination Multiply all elements of the block. The value to multiply by. Multiply all elements of the block by the corresponding elements of 'other'. Adds a vector to all elements of the block. The added vector. Quantize input block, transpose, apply zig-zag ordering and store as . Source block. Destination block. The quantization table. Level shift by +maximum/2, clip to [0..maximum], and round all the values in the block. Rounds all values in the block. Loads values from using extended AVX2 intrinsics. The source Compares entire 8x8 block to a single scalar value. Value to compare to. Transpose the block inplace. Scalar inplace transpose implementation for Level shift by +maximum/2, clip to [0, maximum] AVX2-only variant for executing and in one step. Fill the block from 'source' doing short -> float conversion. Copy block data into the destination color buffer pixel area with the provided horizontal and vertical scale factors. Provides information about the Adobe marker segment. See the included 5116.DCT.pdf file in the source for more information. Gets the length of an adobe marker segment. Initializes a new instance of the struct. The DCT encode version The horizontal downsampling hint used for DCT encoding The vertical downsampling hint used for DCT encoding The color transform model used Gets the DCT Encode Version Gets the horizontal downsampling hint used for DCT encoding 0x0 : (none - Chop) Bit 15 : Encoded with Blend=1 downsampling. Gets the vertical downsampling hint used for DCT encoding 0x0 : (none - Chop) Bit 15 : Encoded with Blend=1 downsampling Gets the colorspace transform model used 00 : Unknown (RGB or CMYK) 01 : YCbCr 02 : YCCK Converts the specified byte array representation of an Adobe marker to its equivalent and returns a value that indicates whether the conversion succeeded. The byte array containing metadata to parse. The marker to return. Encapsulates the conversion of color channels from jpeg image to RGB channels. The available converters Initializes a new instance of the class. Gets a value indicating whether this is available on the current runtime and CPU architecture. Gets the of this converter. Gets the Precision of this converter in bits. Gets the maximum value of a sample Gets the half of the maximum value of a sample Returns the corresponding to the given Converts planar jpeg component values in to RGB color space inplace. The input/ouptut as a stack-only struct Returns the s for all supported colorspaces and precisions. Returns the s for the YCbCr colorspace. Returns the s for the YccK colorspace. Returns the s for the CMYK colorspace. Returns the s for the gray scale colorspace. Returns the s for the RGB colorspace. A stack-only struct to reference the input buffers using -s. The component count The component 0 (eg. Y) The component 1 (eg. Cb). In case of grayscale, it points to . The component 2 (eg. Cr). In case of grayscale, it points to . The component 4 Initializes a new instance of the struct. List of component buffers. Row to convert Initializes a new instance of the struct. List of component color processors. Row to convert abstract base for implementations based on scalar instructions. abstract base for implementations based on API. Converters of this family can work with data of any size. Even though real life data is guaranteed to be of size divisible by 8 newer SIMD instructions like AVX512 won't work with such data out of the box. These converters have fallback code for 'remainder' data. Used to buffer and track the bits read from the Huffman entropy encoded data. Gets the current, if any, marker in the input stream. Gets the opening position of an identified marker. Gets a value indicating whether to continue reading the input stream. Whether a RST marker has been detected, I.E. One that is between RST0 and RST7 Whether a bad marker has been detected, I.E. One that is not between RST0 and RST7 Decodes the Huffman encoded spectral scan. Originally ported from with additional fixes for both performance and common encoding errors. instance containing decoding-related information. Shortcut for .Components. Number of component in the current scan. The reset interval determined by RST markers. How many mcu's are left to do. The End-Of-Block countdown for ending the sequence prematurely when the remaining coefficients are zero. The DC Huffman tables. The AC Huffman tables Initializes a new instance of the class. The input stream. Spectral to pixel converter. The token to monitor cancellation. Sets reset interval determined by RST markers. Decodes the entropy coded data. Component count in the current scan. Build the huffman table using code lengths and code values. Table type. Table index. Code lengths. Code values. The provided spare workspace memory, can be dirty. Represents a Huffman coding table containing basic coding data plus tables for accelerated computation. Memory workspace buffer size used in ctor. Derived from the DHT marker. Contains the symbols, in order of incremental code length. Contains the largest code of length k (0 if none). MaxCode[17] is a sentinel to ensure terminates. Values[] offset for codes of length k ValOffset[k] = Values[] index of 1st symbol of code length k, less the smallest code of length k; so given a code of length k, the corresponding symbol is Values[code + ValOffset[k]]. Contains the length of bits for the given k value. Lookahead table: indexed by the next bits of the input data stream. If the next Huffman code is no more than bits long, we can obtain its length and the corresponding symbol directly from this tables. The lower 8 bits of each table entry contain the number of bits in the corresponding Huffman code, or + 1 if too long. The next 8 bits of each entry contain the symbol. Initializes a new instance of the struct. The code lengths. The huffman values. The provided spare workspace memory, can be dirty. Common interface to represent raw Jpeg components. Gets the component's position in the components array. Gets the number of blocks in this component as Gets the horizontal and the vertical sampling factor as Gets the divisors needed to apply when calculating colors. https://en.wikipedia.org/wiki/Chroma_subsampling In case of 4:2:0 subsampling the values are: Luma.SubSamplingDivisors = (1,1) Chroma.SubSamplingDivisors = (2,2) Gets the index of the quantization table for this block. Gets the storing the "raw" frequency-domain decoded + unzigged blocks. We need to apply IDCT and dequantization to transform them into color-space blocks. Represents decompressed, unprocessed jpeg data with spectral space -s. Gets the color space Gets the components. Gets the quantization tables, in natural order. Provides information about the JFIF marker segment. TODO: Thumbnail? Gets the length of an JFIF marker segment. Initializes a new instance of the struct. The major version. The minor version. The units for the density values. The horizontal pixel density. The vertical pixel density. Gets the major version. Gets the minor version. Gets the units for the following pixel density fields 00 : No units; width:height pixel aspect ratio = Ydensity:Xdensity 01 : Pixels per inch (2.54 cm) 02 : Pixels per centimeter Gets the horizontal pixel density. Must not be zero. Gets the vertical pixel density. Must not be zero. Converts the specified byte array representation of an JFIF marker to its equivalent and returns a value that indicates whether the conversion succeeded. The byte array containing metadata to parse. The marker to return. Identifies the colorspace of a Jpeg image. Color space with 1 component. Color space with 4 components. Color space with 4 components. Color space with 3 components. Color space with 3 components. Represents a single frame component. Gets the component id. Gets or sets DC coefficient predictor. Gets the horizontal sampling factor. Gets the vertical sampling factor. Gets the number of blocks per line. Gets the number of blocks per column. Gets or sets the index for the DC Huffman table. Gets or sets the index for the AC Huffman table. Initializes component for future buffers initialization. Maximal horizontal subsampling factor among all the components. Maximal vertical subsampling factor among all the components. Encapsulates spectral data to rgba32 processing for one component. The size of the area in corresponding to one 8x8 Jpeg block Jpeg frame instance containing required decoding metadata. Gets the maximal number of block rows being processed in one step. Gets the component containing decoding meta information. Gets the instance containing decoding meta information. Initializes a new instance of the class. Gets the temporary working buffer of color values. Convert raw spectral DCT data to color data and copy it to the color buffer . Represents a jpeg file marker. Initializes a new instance of the struct. The marker The position within the stream Initializes a new instance of the struct. The marker The position within the stream Whether the current marker is invalid Gets a value indicating whether the current marker is invalid Gets the position of the marker within a stream Gets the position of the marker within a stream Represent a single jpeg frame Gets a value indicating whether the frame uses the extended specification. Gets a value indicating whether the frame uses the progressive specification. Gets or sets a value indicating whether the frame is encoded using multiple scans (SOS markers). This is true for progressive and baseline non-interleaved images. Gets the precision. Gets the maximum color value derived from . Gets the number of pixel per row. Gets the number of pixels per line. Gets the pixel size of the image. Gets the number of components within a frame. Gets or sets the component id collection. Gets or sets the order in which to process the components. in interleaved mode. Gets or sets the frame component collection. Gets or sets the number of MCU's per line. Gets or sets the number of MCU's per column. Gets the mcu size of the image. Gets the color depth, in number of bits per pixel. Allocates the frame component blocks. Maximal horizontal subsampling factor among all the components. Maximal vertical subsampling factor among all the components. Provides methods for identifying metadata and color profiles within jpeg images. Gets the JFIF specific markers. Gets the ICC specific markers. Gets the adobe photoshop APP13 marker which can contain IPTC meta data. Gets the 8BIM marker, which signals the start of a adobe specific image resource block. Gets a IPTC Image resource ID. Gets the EXIF specific markers. Gets the XMP specific markers. Gets the Adobe specific markers . Returns a value indicating whether the passed bytes are a match to the profile identifier. The bytes to check. The profile identifier. The . Converter used to convert jpeg spectral data to color pixels. Gets a value indicating whether this converter has converted spectral data of the current image or not. Injects jpeg image decoding metadata. This is guaranteed to be called only once at SOF marker by . instance containing decoder-specific parameters. instance containing decoder-specific parameters. Converts single spectral jpeg stride to color stride in baseline decoding mode. Called once per decoded spectral stride in only for baseline interleaved jpeg images. Spectral 'stride' doesn't particularly mean 'single stride'. Actual stride height depends on the subsampling factor of the given image. Marks current converter state as 'converted'. This must be called only for baseline interleaved jpeg's. Gets the color converter. The jpeg frame with the color space to convert to. The raw JPEG data. The color converter. Color decoding scheme: Decode spectral data to Jpeg color space Convert from Jpeg color space to RGB Convert from RGB to target pixel space instance associated with current decoding routine. Jpeg component converters from decompressed spectral to color data. Color converter from jpeg color space to target pixel color space. Intermediate buffer of RGB components used in color conversion. Proxy buffer used in packing from RGB to target TPixel pixels. Resulting 2D pixel buffer. How many pixel rows are processed in one 'stride'. How many pixel rows were processed. Initializes a new instance of the class. The configuration. Gets converted pixel buffer. For non-baseline interleaved jpeg this method does a 'lazy' spectral conversion from spectral to color. Cancellation token. Pixel buffer. Converts single spectral jpeg stride to color stride. Spectral stride index. Enumerates the Huffman tables The DC luminance huffman table index The AC luminance huffman table index The DC chrominance huffman table index The AC chrominance huffman table index A compiled look-up table representation of a huffmanSpec. The maximum codeword size is 16 bits. Each value maps to a int32 of which the 24 most significant bits hold the codeword in bits and the 8 least significant bits hold the codeword size. Code value occupies 24 most significant bits as integer value. This value is shifted to the MSB position for performance reasons. For example, decimal value 10 is stored like this: MSB LSB 1010 0000 00000000 00000000 | 00000100 This was done to eliminate extra binary shifts in the encoder. While code length is represented as 8 bit integer value The compiled representations of theHuffmanSpec. Initializes static members of the struct. Initializes a new instance of the struct. dasd Gets the collection of huffman values. Maximum number of bytes encoded jpeg 8x8 block can occupy. It's highly unlikely for block to occupy this much space - it's a theoretical limit. Where 16 is maximum huffman code binary length according to itu specs. 10 is maximum value binary length, value comes from discrete cosine tranform with value range: [-1024..1023]. Block stores 8x8 = 64 values thus multiplication by 64. Then divided by 8 to get the number of bytes. This value is then multiplied by for performance reasons. Multiplier used within cache buffers size calculation. Theoretically, bytes buffer can fit exactly one minimal coding unit. In reality, coding blocks occupy much less space than the theoretical maximum - this can be exploited. If temporal buffer size is multiplied by at least 2, second half of the resulting buffer will be used as an overflow 'guard' if next block would occupy maximum number of bytes. While first half may fit many blocks before needing to flush. This is subject to change. This can be equal to 1 but recomended value is 2 or even greater - futher benchmarking needed. size multiplier. Jpeg specification requiers to insert 'stuff' bytes after each 0xff byte value. Worst case scenarion is when all bytes are 0xff. While it's highly unlikely (if not impossible) to get such combination, it's theoretically possible so buffer size must be guarded. Compiled huffman tree to encode given values. Yields codewords by index consisting of [run length | bitsize]. Emitted bits 'micro buffer' before being transferred to the . Buffer for temporal storage of huffman rle encoding bit data. Encoding bits are assembled to 4 byte unsigned integers and then copied to this buffer. This process does NOT include inserting stuff bytes. Buffer for temporal storage which is then written to the output stream. Encoding bits from are copied to this byte buffer including stuff bytes. Number of jagged bits stored in The output stream. All attempted writes after the first error become no-ops. Initializes a new instance of the class. Amount of encoded 8x8 blocks per single jpeg macroblock. Output stream for saving encoded data. Gets a value indicating whether is full and must be flushed using before encoding next 8x8 coding block. Encodes the image with no subsampling. The pixel format. The pixel accessor providing access to the image pixels. Luminance quantization table provided by the callee. Chrominance quantization table provided by the callee. The token to monitor for cancellation. Encodes the image with subsampling. The Cb and Cr components are each subsampled at a factor of 2 both horizontally and vertically. The pixel format. The pixel accessor providing access to the image pixels. Luminance quantization table provided by the callee. Chrominance quantization table provided by the callee. The token to monitor for cancellation. Encodes the image with no chroma, just luminance. The pixel format. The pixel accessor providing access to the image pixels. Luminance quantization table provided by the callee. The token to monitor for cancellation. Encodes the image with no subsampling and keeps the pixel data as Rgb24. The pixel format. The pixel accessor providing access to the image pixels. Quantization table provided by the callee. The token to monitor for cancellation. Writes a block of pixel data using the given quantization table, returning the post-quantized DC value of the DCT-transformed block. The block is in natural (not zig-zag) order. The quantization table index. The previous DC value. Source block. Quantization table. The . Emits the most significant count of bits to the buffer. Supports up to 32 count of bits but, generally speaking, jpeg standard assures that there won't be more than 16 bits per single value. Emitting algorithm uses 3 intermediate buffers for caching before writing to the stream: uint32 Bit buffer. Encoded spectral values can occupy up to 16 bits, bits are assembled to whole bytes via this intermediate buffer. uint32[] Assembled bytes from uint32 buffer are saved into this buffer. uint32 buffer values are saved using indices from the last to the first. As bytes are saved to the memory as 4-byte packages endianness matters: Jpeg stream is big-endian, indexing buffer bytes from the last index to the first eliminates all operations to extract separate bytes. This only works for little-endian machines (there are no known examples of big-endian users atm). For big-endians this approach is slower due to the separate byte extraction. byte[] Byte buffer used only during method. Bits to emit, must be shifted to the left. Bits count stored in the bits parameter. Emits the given value with the given Huffman table. Huffman table. Value to encode. Emits given value via huffman rle encoding. Huffman table. The number of preceding zeroes, preshifted by 4 to the left. Value to encode. Calculates how many minimum bits needed to store given value for Huffman jpeg encoding. This is an internal operation supposed to be used only in class for jpeg encoding. The value. General method for flushing cached spectral data bytes to the ouput stream respecting stuff bytes. Bytes cached via are stored in 4-bytes blocks which makes this method endianness dependent. Flushes spectral data bytes after encoding all channel blocks in a single jpeg macroblock using . This must be called only if is true only during the macroblocks encoding routine. Flushes final cached bits to the stream padding 1's to complement full bytes. This must be called only once at the end of the encoding routine. check is not needed. The Huffman encoding specifications. The Huffman encoding specifications. This encoder uses the same Huffman encoding for all images. Gets count[i] - The number of codes of length i bits. Gets value[i] - The decoded value of the codeword at the given index. Initializes a new instance of the struct. The number of codes. The decoded values. On-stack worker struct to efficiently encapsulate the TPixel -> L8 -> Y conversion chain of 8x8 pixel blocks. The pixel type to work on Number of pixels processed per single call The Y component Temporal 64-pixel span to hold unconverted TPixel data. Temporal 64-byte span to hold converted data. Sampled pixel buffer size. for internal operations. Gets size of sampling area from given frame pixel buffer. Converts a 8x8 image area inside 'pixels' at position (x,y) placing the result members of the structure () Converts 8x8 L8 pixel matrix to 8x8 Block of floats using Avx2 Intrinsics. Start of span of L8 pixels with size of 64 8x8 destination matrix of Luminance(Y) converted data Converts 8x8 L8 pixel matrix to 8x8 Block of floats. Start of span of L8 pixels with size of 64 8x8 destination matrix of Luminance(Y) converted data Enumerates the quantization tables. The luminance quantization table index. The chrominance quantization table index. On-stack worker struct to convert TPixel -> Rgb24 of 8x8 pixel blocks. The pixel type to work on. Number of pixels processed per single call Total byte size of processed pixels converted from TPixel to The Red component. The Green component. The Blue component. Temporal 64-byte span to hold unconverted TPixel data. Temporal 64-byte span to hold converted Rgb24 data. Sampled pixel buffer size. for internal operations. Gets size of sampling area from given frame pixel buffer. Converts a 8x8 image area inside 'pixels' at position (x, y) to Rgb24. Converts 8x8 RGB24 pixel matrix to 8x8 Block of floats using Avx2 Intrinsics. Span of Rgb24 pixels with size of 64 8x8 destination matrix of Red converted data 8x8 destination matrix of Blue converted data 8x8 destination matrix of Green converted data Provides 8-bit lookup tables for converting from Rgb to YCbCr colorspace. Methods to build the tables are based on libjpeg implementation. The red luminance table The green luminance table The blue luminance table The red blue-chrominance table The green blue-chrominance table The blue blue-chrominance table B=>Cb and R=>Cr are the same The green red-chrominance table The blue red-chrominance table Initializes the YCbCr tables The initialized Converts Rgb24 pixels into YCbCr color space with 4:4:4 subsampling sampling of luminance and chroma. Span of Rgb24 pixel data Resulting Y values block Resulting Cb values block Resulting Cr values block Converts Rgb24 pixels into YCbCr color space with 4:2:0 subsampling of luminance and chroma. Calculates 2 out of 4 luminance blocks and half of chroma blocks. This method must be called twice per 4x 8x8 DCT blocks with different row param. Span of Rgb24 pixel data First or "left" resulting Y block Second or "right" resulting Y block Resulting Cb values block Resulting Cr values block Row index of the 16x16 block, 0 or 1 Converts 8x8 Rgb24 pixel matrix to YCbCr pixel matrices with 4:4:4 subsampling Total size of rgb span must be 200 bytes Span of rgb pixels with size of 64 8x8 destination matrix of Luminance(Y) converted data 8x8 destination matrix of Chrominance(Cb) converted data 8x8 destination matrix of Chrominance(Cr) converted data Converts 16x8 Rgb24 pixels matrix to 2 Y 8x8 matrices with 4:2:0 subsampling On-stack worker struct to efficiently encapsulate the TPixel -> Rgb24 -> YCbCr conversion chain of 8x8 pixel blocks. The pixel type to work on Number of pixels processed per single call Total byte size of processed pixels converted from TPixel to The left Y component The left Y component The Cb component The Cr component The color conversion tables Temporal 16x8 block to hold TPixel data Temporal RGB block Sampled pixel buffer size for internal operations Gets size of sampling area from given frame pixel buffer. On-stack worker struct to efficiently encapsulate the TPixel -> Rgb24 -> YCbCr conversion chain of 8x8 pixel blocks. The pixel type to work on Number of pixels processed per single call Total byte size of processed pixels converted from TPixel to The Y component The Cb component The Cr component The color conversion tables Temporal 64-byte span to hold unconverted TPixel data Temporal 64-byte span to hold converted Rgb24 data Sampled pixel buffer size for internal operations Gets size of sampling area from given frame pixel buffer. Converts a 8x8 image area inside 'pixels' at position (x,y) placing the result members of the structure (, , ) Contains inaccurate, but fast forward and inverse DCT implementations. Gets adjustment table for quantization tables. Current IDCT and FDCT implementations are based on Arai, Agui, and Nakajima's algorithm. Both DCT methods does not produce finished DCT output, final step is fused into the quantization step. Quantization and de-quantization coefficients must be multiplied by these values. Given values were generated by formula: scalefactor[row] * scalefactor[col], where scalefactor[0] = 1 scalefactor[k] = cos(k*PI/16) * sqrt(2) for k=1..7 Adjusts given quantization table for usage with . Quantization table to adjust. Adjusts given quantization table for usage with . Quantization table to adjust. Apply 2D floating point IDCT inplace. Input block must be dequantized before this method with table adjusted by . Input block. Apply 2D floating point IDCT inplace. Input block must be quantized after this method with table adjusted by . Input block. Apply floating point IDCT inplace using API. This method can be used even if there's no SIMD intrinsics available as can be compiled to scalar instructions. Input block. Apply floating point FDCT inplace using API. Input block. Provides methods and properties related to jpeg quantization. Upper bound (inclusive) for jpeg quality setting. Lower bound (inclusive) for jpeg quality setting. Default JPEG quality for both luminance and chominance tables. Represents lowest quality setting which can be estimated with enough confidence. Any quality below it results in a highly compressed jpeg image which shouldn't use standard itu quantization tables for re-encoding. Represents highest quality setting which can be estimated with enough confidence. Gets unscaled luminance quantization table. The values are derived from ITU section K.1. Gets unscaled chrominance quantization table. The values are derived from ITU section K.1. Ported from JPEGsnoop: https://github.com/ImpulseAdventure/JPEGsnoop/blob/9732ee0961f100eb69bbff4a0c47438d5997abee/source/JfifDecode.cpp#L4570-L4694 Estimates jpeg quality based on standard quantization table. Technically, this can be used with any given table but internal decoder code uses ITU spec tables: and . Input quantization table. Natural order quantization table to estimate against. Estimated quality. Estimates jpeg quality based on quantization table in zig-zag order. Luminance quantization table. Estimated quality Estimates jpeg quality based on quantization table in zig-zag order. Chrominance quantization table. Estimated quality Cache 8 pixel rows on the stack, which may originate from different buffers of a . Extension methods for Multiplies 'a.Width' with 'b.Width' and 'a.Height' with 'b.Height'. TODO: Shouldn't we expose this as operator in SixLabors.Core? Divides 'a.Width' with 'b.Width' and 'a.Height' with 'b.Height'. TODO: Shouldn't we expose this as operator in SixLabors.Core? Divide Width and Height as real numbers and return the Ceiling. Divide Width and Height as real numbers and return the Ceiling. Divide Width and Height as real numbers and return the Ceiling. Gets span of zig-zag ordering indices. When reading corrupted data, the Huffman decoders could attempt to reference an entry beyond the end of this array (if the decoded zero run length reaches past the end of the block). To prevent wild stores without adding an inner-loop test, we put some extra "63"s after the real entries. This will cause the extra coefficient to be stored in location 63 of the block, not somewhere random. The worst case would be a run-length of 15, which means we need 16 fake entries. Gets span of zig-zag with fused transpose step ordering indices. When reading corrupted data, the Huffman decoders could attempt to reference an entry beyond the end of this array (if the decoded zero run length reaches past the end of the block). To prevent wild stores without adding an inner-loop test, we put some extra "63"s after the real entries. This will cause the extra coefficient to be stored in location 63 of the block, not somewhere random. The worst case would be a run-length of 15, which means we need 16 fake entries. Image decoder for generating an image out of a jpg stream. Gets a value indicating whether the metadata should be ignored when the image is being decoded. Encoder for writing the data image to a stream in jpeg format. Gets or sets the quality, that will be used to encode the image. Quality index must be between 0 and 100 (compression from max to min). Defaults to 75. Gets the color type, that will be used to encode the image. Provides enumeration of available JPEG color types. YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification. Medium Quality - The horizontal sampling is halved and the Cb and Cr channels are only sampled on each alternate line. YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification. High Quality - Each of the three Y'CbCr components have the same sample rate, thus there is no chroma subsampling. YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification. The two chroma components are sampled at half the horizontal sample rate of luma while vertically it has full resolution. Note: Not supported by the encoder. YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification. In 4:1:1 chroma subsampling, the horizontal color resolution is quartered. Note: Not supported by the encoder. YCbCr (luminance, blue chroma, red chroma) color as defined in the ITU-T T.871 specification. This ratio uses half of the vertical and one-fourth the horizontal color resolutions. Note: Not supported by the encoder. Single channel, luminance. The pixel data will be preserved as RGB without any sub sampling. CMYK colorspace (cyan, magenta, yellow, and key black) intended for printing. Note: Not supported by the encoder. Registers the image encoders, decoders and mime type detectors for the jpeg format. Contains jpeg constant values defined in the specification. The maximum allowable length in each dimension of a jpeg image. The list of mimetypes that equate to a jpeg. The list of file extensions that equate to a jpeg. Contains marker specific constants. The prefix used for all markers. Same as but of type The Start of Image marker The End of Image marker Application specific marker for marking the jpeg format. Application specific marker for marking where to store metadata. Application specific marker for marking where to store ICC profile information. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker. Application specific marker used by Adobe for storing encoding information for DCT filters. Application specific marker used by GraphicConverter to store JPEG quality. Define arithmetic coding conditioning marker. The text comment marker Define Quantization Table(s) marker Specifies one or more quantization tables. Start of Frame (baseline DCT) Indicates that this is a baseline DCT-based JPEG, and specifies the width, height, number of components, and component subsampling (e.g., 4:2:0). Start Of Frame (Extended Sequential DCT) Indicates that this is a progressive DCT-based JPEG, and specifies the width, height, number of components, and component subsampling (e.g., 4:2:0). Start Of Frame (progressive DCT) Indicates that this is a progressive DCT-based JPEG, and specifies the width, height, number of components, and component subsampling (e.g., 4:2:0). Start of Frame marker, non differential lossless, Huffman coding. Start of Frame marker, differential, Huffman coding, Differential sequential DCT. Start of Frame marker, differential, Huffman coding, Differential progressive DCT. Start of Frame marker, differential lossless, Huffman coding. Start of Frame marker, non-differential, arithmetic coding, Extended sequential DCT. Start of Frame marker, non-differential, arithmetic coding, Progressive DCT. Start of Frame marker, non-differential, arithmetic coding, Lossless (sequential). Start of Frame marker, differential, arithmetic coding, Differential sequential DCT. Start of Frame marker, differential, arithmetic coding, Differential progressive DCT. Start of Frame marker, differential, arithmetic coding, Differential lossless (sequential). Define Huffman Table(s) Specifies one or more Huffman tables. Define Restart Interval Specifies the interval between RSTn markers, in macroblocks.This marker is followed by two bytes indicating the fixed size so it can be treated like any other variable size segment. Start of Scan Begins a top-to-bottom scan of the image. In baseline DCT JPEG images, there is generally a single scan. Progressive DCT JPEG images usually contain multiple scans. This marker specifies which slice of data it will contain, and is immediately followed by entropy-coded data. Define First Restart Inserted every r macroblocks, where r is the restart interval set by a DRI marker. Not used if there was no DRI marker. The low three bits of the marker code cycle in value from 0 to 7. Define Eigth Restart Inserted every r macroblocks, where r is the restart interval set by a DRI marker. Not used if there was no DRI marker. The low three bits of the marker code cycle in value from 0 to 7. Contains Adobe specific constants. The color transform is unknown.(RGB or CMYK) The color transform is YCbCr (luminance, red chroma, blue chroma) The color transform is YCCK (luminance, red chroma, blue chroma, keyline) Contains Huffman specific constants. The size of the huffman decoder register. The number of bits to fetch when filling the buffer. The number of times to read the input stream when filling the buffer. The minimum number of bits allowed before by the before fetching. If the next Huffman code is no more than this number of bits, we can obtain its length and the corresponding symbol directly from this tables. If a Huffman code is this number of bits we cannot use the lookup table to determine its value. The size of the lookup table. Image decoder for generating an image out of a jpg stream. Performs the jpeg decoding operation. Originally ported from with additional fixes for both performance and common encoding errors. The only supported precision The buffer used to temporarily store bytes read from the stream. The buffer used to read markers from the stream. Whether the image has an EXIF marker. Contains exif data. Whether the image has an ICC marker. Contains ICC data. Whether the image has a IPTC data. Contains IPTC data. Whether the image has a XMP data. Contains XMP data. Contains information about the JFIF marker. Contains information about the Adobe marker. Scan decoder. Initializes a new instance of the class. The configuration. The options. Gets the frame Gets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoded by this decoder instance. Gets the components. Finds the next file marker within the byte stream. The buffer to read file markers to. The input stream. The Load quantization and/or Huffman tables for subsequent use for jpeg's embedded in tiff's, so those tables do not need to be duplicated with segmented tiff's (tiff's with multiple strips). The table bytes. The scan decoder. Parses the input stream for file markers. The input stream. Scan decoder used exclusively to decode SOS marker. The token to monitor cancellation. Returns the correct colorspace based on the image component count and the jpeg frame component id's. The number of components. The Returns the jpeg color type based on the colorspace and subsampling used. Jpeg color type. Initializes the EXIF profile. Initializes the ICC profile. Initializes the IPTC profile. Initializes the XMP profile. Assigns derived metadata properties to , eg. horizontal and vertical resolution if it has a JFIF header. Extends the profile with additional data. The profile data array. The array containing addition profile data. Processes the application header containing the JFIF identifier plus extra data. The input stream. The remaining bytes in the segment block. Processes the App1 marker retrieving any stored metadata. The input stream. The remaining bytes in the segment block. Processes the App2 marker retrieving any stored ICC profile information The input stream. The remaining bytes in the segment block. Processes a App13 marker, which contains IPTC data stored with Adobe Photoshop. The tableBytes of an APP13 segment is formed by an identifier string followed by a sequence of resource data blocks. The input stream. The remaining bytes in the segment block. Reads the adobe image resource block name: a Pascal string (padded to make size even). The span holding the block resource data. The length of the name. Reads the length of a adobe image resource data block. The span holding the block resource data. The length of the block name. The block length. Processes the application header containing the Adobe identifier which stores image encoding information for DCT filters. The input stream. The remaining bytes in the segment block. Processes the Define Quantization Marker and tables. Specified in section B.2.4.1. The input stream. The remaining bytes in the segment block. Thrown if the tables do not match the header Processes the Start of Frame marker. Specified in section B.2.2. The input stream. The remaining bytes in the segment block. The current frame marker. Whether to parse metadata only Processes a Define Huffman Table marker, and initializes a huffman struct from its contents. Specified in section B.2.4.2. The input stream. The remaining bytes in the segment block. Processes the DRI (Define Restart Interval Marker) Which specifies the interval between RSTn markers, in macroblocks The input stream. The remaining bytes in the segment block. Processes the SOS (Start of scan marker). Reads a from the stream advancing it by two bytes The input stream. The Encoder for writing the data image to a stream in jpeg format. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to monitor for cancellation requests. A representing the asynchronous operation. Image encoder for writing an image to a stream as a jpeg. The number of quantization tables. A scratch buffer to reduce allocations. The quality, that will be used to encode the image. Gets or sets the colorspace to use. The output stream. All attempted writes after the first error become no-ops. Initializes a new instance of the class. The options. Encode writes the image to the jpeg baseline format with the given options. The pixel format. The image to write from. The stream to write to. The token to request cancellation. If color type was not set, set it based on the given image. Note, if there is no metadata and the image has multiple components this method returns defering the field assignment to . Returns true, if the color type is supported by the encoder. The color type. true, if color type is supported. Gets the component ids. For color space RGB this will be RGB as ASCII, otherwise 1, 2, 3. The component Ids. Writes data to "Define Quantization Tables" block for QuantIndex. The "Define Quantization Tables" block. Offset in "Define Quantization Tables" block. The quantization index. The quantization table to copy data from. Write the start of image marker. Writes the application header containing the JFIF identifier plus extra data. The image metadata. Writes the Define Huffman Table marker and tables. The number of components to write. Writes the Define Quantization Marker and tables. Writes the APP14 marker to indicate the image is in RGB color space. Writes the EXIF profile. The exif profile. Writes the IPTC metadata. The iptc metadata to write. Thrown if the IPTC profile size exceeds the limit of 65533 bytes. Writes the XMP metadata. The XMP metadata to write. Thrown if the XMP profile size exceeds the limit of 65533 bytes. Writes the App1 header. The length of the data the app1 marker contains. Writes a AppX header. The length of the data the app marker contains. The app marker to write. Writes the ICC profile. The ICC profile to write. Thrown if any of the ICC profiles size exceeds the limit. Writes the metadata profiles to the image. The image metadata. Writes the Start Of Frame (Baseline) marker. The width of the image. The height of the image. The number of components in a pixel. The component Id's. Writes the StartOfScan marker. The number of components in a pixel. The componentId's. Writes the EndOfImage marker. Writes the header for a marker with the given length. The marker to write. The marker length. Initializes quantization tables. Zig-zag ordering is NOT applied to the resulting tables. We take quality values in a hierarchical order: 1. Check if encoder has set quality 2. Check if metadata has set quality 3. Take default quality value - 75 Color components count. Jpeg metadata instance. Output luminance quantization table. Output chrominance quantization table. Registers the image encoders, decoders and mime type detectors for the jpeg format. Gets the current instance. Detects Jpeg file headers Returns a value indicating whether the given bytes identify Jfif data. The bytes representing the file header. The Returns a value indicating whether the given bytes identify EXIF data. The bytes representing the file header. The Returns a value indicating whether the given bytes identify Jpeg data. This is a last chance resort for jpegs that contain ICC information. The bytes representing the file header. The Provides Jpeg specific metadata information for the image. Backing field for Backing field for Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the jpeg luminance quality. This value might not be accurate if it was calculated during jpeg decoding with non-complient ITU quantization tables. Gets or sets the jpeg chrominance quality. This value might not be accurate if it was calculated during jpeg decoding with non-complient ITU quantization tables. Gets or sets the encoded quality. Note that jpeg image can have different quality for luminance and chrominance components. This property returns maximum value of luma/chroma qualities. Gets or sets the color type. Cold path optimization for throwing 's. The error message for the exception. Cold path optimization for throwing 's. The error message for the exception. Pixel decoding methods for the PBM binary encoding. Decode the specified pixels. The type of pixel to encode to. The configuration. The pixel array to encode into. The stream to read the data from. The ColorType to decode. Data type of the pixles components. Thrown if an invalid combination of setting is requested. Pixel encoding methods for the PBM binary encoding. Decode pixels into the PBM binary encoding. The type of input pixel. The configuration. The bytestream to write to. The input image. The ColorType to use. Data type of the pixles components. Thrown if an invalid combination of setting is requested. Extensions methods for . Skip over any whitespace or any comments. Read a decimal text value. The integer value of the decimal. Configuration options for use during PBM encoding. Gets the encoding of the pixels. Gets the Color type of the resulting image. Gets the Data Type of the pixel components. Provides enumeration of available PBM color types. PBM PGM - Greyscale. Single component. PPM - RGB Color. 3 components. The data type of the components of the pixels. Single bit per pixel, exclusively for . 8 bits unsigned integer per component. 16 bits unsigned integer per component. Registers the image encoders, decoders and mime type detectors for the Pbm format. Contains PBM constant values defined in the specification. The maximum allowable pixel value of a ppm image. The list of mimetypes that equate to a ppm. The list of file extensions that equate to a ppm. Image decoder for reading PGM, PBM or PPM bitmaps from a stream. These images are from the family of PNM images. PBM Black and white images. PGM Grayscale images. PPM Color images, with RGB pixels. The specification of these images is found at . Performs the PBM decoding operation. Initializes a new instance of the class. The configuration. Gets the colortype to use Gets the size of the pixel array Gets the component data type Gets the Encoding of pixels Gets the decoded by this decoder instance. Processes the ppm header. The input stream. Image encoder for writing an image to a stream as PGM, PBM or PPM bitmap. These images are from the family of PNM images. The PNM formats are a fairly simple image format. They share a plain text header, consisting of: signature, width, height and max_pixel_value only. The pixels follow thereafter and can be in plain text decimals separated by spaces, or binary encoded. PBM Black and white images, with 1 representing black and 0 representing white. PGM Grayscale images, scaling from 0 to max_pixel_value, 0 representing black and max_pixel_value representing white. PPM Color images, with RGB pixels (in that order), with 0 representing black and 2 representing full color. The specification of these images is found at . Gets or sets the Encoding of the pixels. Gets or sets the Color type of the resulting image. Gets or sets the data type of the pixels components. Image encoder for writing an image to a stream as a PGM, PBM, PPM or PAM bitmap. The global configuration. The encoder options. The encoding for the pixels. Gets the Color type of the resulting image. Gets the maximum pixel value, per component. Initializes a new instance of the class. The configuration. The encoder options. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Writes the pixel data to the binary stream. The pixel format. The to write to. The containing pixel data. Provides enumeration of available PBM encodings. Plain text decimal encoding. Binary integer encoding. Registers the image encoders, decoders and mime type detectors for the PBM format. Gets the current instance. Detects Pbm file headers. Provides PBM specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the encoding of the pixels. Gets or sets the color type. Gets or sets the data type of the pixel components. Pixel decoding methods for the PBM plain encoding. Decode the specified pixels. The type of pixel to encode to. The configuration. The pixel array to encode into. The stream to read the data from. The ColorType to decode. Data type of the pixles components. Pixel encoding methods for the PBM plain encoding. Decode pixels into the PBM plain encoding. The type of input pixel. The configuration. The bytestream to write to. The input image. The ColorType to use. Data type of the pixles components. Contains information about the pixels that make up an images visual data. Initializes a new instance of the class. Color depth, in number of bits per pixel. Initializes a new instance of the class. Color depth, in number of bits per pixel. The pixel alpha transparency behavior. Gets color depth, in number of bits per pixel. Gets the pixel alpha transparency behavior. means unknown, unspecified. Constants and helper methods for the Adam7 interlacing algorithm. The amount to increment when processing each column per scanline for each interlaced pass. The index to start at when processing each column per scanline for each interlaced pass. The index to start at when processing each row per scanline for each interlaced pass. The amount to increment when processing each row per scanline for each interlaced pass. Gets the width of the block. The width. The pass. The Gets the height of the block. The height. The pass. The Returns the correct number of columns for each interlaced pass. The line width. The current pass index. The The pHYs chunk specifies the intended pixel size or aspect ratio for display of the image. Gets the number of pixels per unit on the X axis. Gets the number of pixels per unit on the Y axis. Gets the unit specifier. 0: unit is unknown 1: unit is the meter When the unit specifier is 0, the pHYs chunk defines pixel aspect ratio only; the actual size of the pixels remains unspecified. Parses the PhysicalChunkData from the given buffer. The data buffer. The parsed PhysicalChunkData. Constructs the PngPhysicalChunkData from the provided metadata. If the resolution units are not in meters, they are automatically converted. The metadata. The constructed PngPhysicalChunkData instance. Writes the data to the given buffer. The buffer. The Average filter uses the average of the two neighboring pixels (left and above) to predict the value of a pixel. Decodes a scanline, which was filtered with the average filter. The scanline to decode. The previous scanline. The bytes per pixel. Encodes a scanline with the average filter applied. The scanline to encode. The previous scanline. The filtered scanline result. The bytes per pixel. The sum of the total variance of the filtered row. Calculates the average value of two bytes The left byte The above byte The Provides enumeration of the various PNG filter types. With the None filter, the scanline is transmitted unmodified; it is only necessary to insert a filter type byte before the data. The Sub filter transmits the difference between each byte and the value of the corresponding byte of the prior pixel. The Up filter is just like the Sub filter except that the pixel immediately above the current pixel, rather than just to its left, is used as the predictor. The Average filter uses the average of the two neighboring pixels (left and above) to predict the value of a pixel. The Paeth filter computes a simple linear function of the three neighboring pixels (left, above, upper left), then chooses as predictor the neighboring pixel closest to the computed value. This technique is due to Alan W. Paeth The None filter, the scanline is transmitted unmodified; it is only necessary to insert a filter type byte before the data. Encodes the scanline The scanline to encode The filtered scanline result. The Paeth filter computes a simple linear function of the three neighboring pixels (left, above, upper left), then chooses as predictor the neighboring pixel closest to the computed value. This technique is due to Alan W. Paeth. Decodes a scanline, which was filtered with the paeth filter. The scanline to decode. The previous scanline. The bytes per pixel. Encodes a scanline and applies the paeth filter. The scanline to encode The previous scanline. The filtered scanline result. The bytes per pixel. The sum of the total variance of the filtered row. Computes a simple linear function of the three neighboring pixels (left, above, upper left), then chooses as predictor the neighboring pixel closest to the computed value. The left neighbor pixel. The above neighbor pixel. The upper left neighbor pixel. The . The Sub filter transmits the difference between each byte and the value of the corresponding byte of the prior pixel. Decodes a scanline, which was filtered with the sub filter. The scanline to decode. The bytes per pixel. Encodes a scanline with the sup filter applied. The scanline to encode. The filtered scanline result. The bytes per pixel. The sum of the total variance of the filtered row. The Up filter is just like the Sub filter except that the pixel immediately above the current pixel, rather than just to its left, is used as the predictor. Decodes a scanline, which was filtered with the up filter. The scanline to decode The previous scanline. Encodes a scanline with the up filter applied. The scanline to encode. The previous scanline. The filtered scanline result. The sum of the total variance of the filtered row. The options for decoding png images Gets a value indicating whether the metadata should be ignored when the image is being decoded. The options available for manipulating the encoder pipeline. Gets the number of bits per sample or per palette index (not per pixel). Not all values are allowed for all values. Gets the color type. Gets the filter method. Gets the compression level 1-9. Defaults to . Gets the threshold of characters in text metadata, when compression should be used. Gets the gamma value, that will be written the image. The gamma value of the image. Gets the quantizer for reducing the color count. Gets the transparency threshold. Gets a value indicating whether this instance should write an Adam7 interlaced image. Gets a value indicating whether the metadata should be ignored when the image is being encoded. When set to true, all ancillary chunks will be skipped. Gets the chunk filter method. This allows to filter ancillary chunks. Gets a value indicating whether fully transparent pixels that may contain R, G, B values which are not 0, should be converted to transparent black, which can yield in better compression in some cases. Provides enumeration for the available PNG bit depths. 1 bit per sample or per palette index (not per pixel). 2 bits per sample or per palette index (not per pixel). 4 bits per sample or per palette index (not per pixel). 8 bits per sample or per palette index (not per pixel). 16 bits per sample or per palette index (not per pixel). Stores header information about a chunk. Gets the length. An unsigned integer giving the number of bytes in the chunk's data field. The length counts only the data field, not itself, the chunk type code, or the CRC. Zero is a valid length Gets the chunk type. The value is the equal to the UInt32BigEndian encoding of its 4 ASCII characters. Gets the data bytes appropriate to the chunk type, if any. This field can be of zero length or null. Gets a value indicating whether the given chunk is critical to decoding Provides enumeration of available PNG optimization methods. With the None filter, all chunks will be written. Excludes the physical dimension information chunk from encoding. Excludes the gamma information chunk from encoding. Excludes the eXIf chunk from encoding. Excludes the tTXt, iTXt or zTXt chunk from encoding. All ancillary chunks will be excluded. Contains a list of chunk types. The IDAT chunk contains the actual image data. The image can contains more than one chunk of this type. All chunks together are the whole image. This chunk must appear last. It marks the end of the PNG data stream. The chunk's data field is empty. The first chunk in a png file. Can only exists once. Contains common information like the width and the height of the image or the used compression method. The PLTE chunk contains from 1 to 256 palette entries, each a three byte series in the RGB format. The eXIf data chunk which contains the Exif profile. This chunk specifies the relationship between the image samples and the desired display output intensity. The pHYs chunk specifies the intended pixel size or aspect ratio for display of the image. Textual information that the encoder wishes to record with the image can be stored in tEXt chunks. Each tEXt chunk contains a keyword and a text string. Textual information that the encoder wishes to record with the image. The zTXt and tEXt chunks are semantically equivalent, but the zTXt chunk is recommended for storing large blocks of text. Each zTXt chunk contains a (uncompressed) keyword and a compressed text string. The iTXt chunk contains International textual data. It contains a keyword, an optional language tag, an optional translated keyword and the actual text string, which can be compressed or uncompressed. The tRNS chunk specifies that the image uses simple transparency: either alpha values associated with palette entries (for indexed-color images) or a single transparent color (for grayscale and true color images). The tIME chunk gives the time of the last image modification (not the time of initial image creation). The bKGD chunk specifies a default background colour to present the image against. If there is any other preferred background, either user-specified or part of a larger page (as in a browser), the bKGD chunk should be ignored. The iCCP chunk contains a embedded color profile. If the iCCP chunk is present, the image samples conform to the colour space represented by the embedded ICC profile as defined by the International Color Consortium. The sBIT chunk defines the original number of significant bits (which can be less than or equal to the sample depth). This allows PNG decoders to recover the original data losslessly even if the data had a sample depth not directly supported by PNG. If the sRGB chunk is present, the image samples conform to the sRGB colour space [IEC 61966-2-1] and should be displayed using the specified rendering intent defined by the International Color Consortium. The hIST chunk gives the approximate usage frequency of each colour in the palette. The sPLT chunk contains the suggested palette. The cHRM chunk may be used to specify the 1931 CIE x,y chromaticities of the red, green, and blue display primaries used in the image, and the referenced white point. Malformed chunk named CgBI produced by apple, which is not conform to the specification. Related issue is here https://github.com/SixLabors/ImageSharp/issues/410 Provides enumeration of available PNG color types. Each pixel is a grayscale sample. Each pixel is an R,G,B triple. Each pixel is a palette index; a PLTE chunk must appear. Each pixel is a grayscale sample, followed by an alpha sample. Each pixel is an R,G,B triple, followed by an alpha sample. Provides enumeration of available PNG compression levels. Level 0. Equivalent to . No compression. Equivalent to . Level 1. Equivalent to . Best speed compression level. Level 2. Level 3. Level 4. Level 5. Level 6. Equivalent to . The default compression level. Equivalent to . Level 7. Level 8. Level 9. Equivalent to . Best compression level. Equivalent to . Registers the image encoders, decoders and mime type detectors for the png format. Defines Png constants defined in the specification. The character encoding to use when reading and writing textual data keywords and text - (Latin-1 ISO-8859-1). The character encoding to use when reading and writing language tags within iTXt chunks - (ASCII 7bit). The character encoding to use when reading and writing translated textual data keywords and text - (UTF8). The list of mimetypes that equate to a Png. The list of file extensions that equate to a Png. The header bytes as a big-endian coded ulong. The dictionary of available color types. The maximum length of keyword in a text chunk is 79 bytes. The minimum length of a keyword in a text chunk is 1 byte. Gets the header bytes identifying a Png. Gets the keyword of the XMP metadata, encoded in an iTXT chunk. Decoder for generating an image out of a png encoded stream. Performs the png decoding operation. Reusable buffer. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Gets or sets a value indicating whether to read the IHDR and tRNS chunks only. Used the manage memory allocations. The stream to decode from. The png header. The number of bytes per pixel. The number of bytes per sample. The number of bytes per scanline. The palette containing color information for indexed png's. The palette containing alpha channel color information for indexed png's. Previous scanline processed. The current scanline that is being processed. The index of the current scanline being processed. The current number of bytes read in the current scanline. Gets or sets the png color type. The next chunk of data to return. Initializes a new instance of the class. The configuration. The decoder options. Gets the dimensions of the image. Reads the least significant bits from the byte pair with the others set to 0. The source buffer THe offset The Attempts to convert a byte array to a new array where each value in the original array is represented by the specified number of bits. The bytes to convert from. Cannot be empty. The number of bytes per scanline The number of bits per value. The new array. The resulting array. Reads the data chunk containing physical dimension data. The metadata to read to. The data containing physical data. Reads the data chunk containing gamma data. The metadata to read to. The data containing physical data. Initializes the image and various buffers needed for processing The type the pixels will be The metadata information for the image The image that we will populate Calculates the correct number of bits per pixel for the given color type. The Calculates the correct number of bytes per pixel for the given color type. The Calculates the scanline length. The width of the row. The representing the length. Reads the scanlines within the image. The pixel format. The png chunk containing the compressed scanline data. The pixel data. The png metadata Decodes the raw pixel data row by row The pixel format. The compressed pixel data stream. The image to decode to. The png metadata Decodes the raw interlaced pixel data row by row The pixel format. The compressed pixel data stream. The current image. The png metadata. Processes the de-filtered scanline filling the image pixel data The pixel format. The de-filtered scanline The image The png metadata. Processes the interlaced de-filtered scanline filling the image pixel data The pixel format. The de-filtered scanline The current image row. The png metadata. The column start index. Always 0 for none interlaced images. The column increment. Always 1 for none interlaced images. Decodes and assigns marker colors that identify transparent pixels in non indexed images. The alpha tRNS array. The png metadata. Reads a header chunk from the data. The png metadata. The containing data. Reads a text chunk containing image properties from the data. The object. The metadata to decode to. The containing the data. Reads the compressed text chunk. Contains a uncompressed keyword and a compressed text string. The object. The metadata to decode to. The containing the data. Checks if the given text chunk is actually storing parsable metadata. The object to store the parsed metadata in. The name of the text chunk. The contents of the text chunk. True if metadata was successfully parsed from the text chunk. False if the text chunk was not identified as metadata, and should be stored in the metadata object unmodified. Reads exif data encoded into a text chunk with the name "raw profile type exif". This method was used by ImageMagick, exiftool, exiv2, digiKam, etc, before the 2017 update to png that allowed a true exif chunk. The to store the decoded exif tags into. The contents of the "raw profile type exif" text chunk. Compares two ReadOnlySpan<char>s in a case-insensitive method. This is only needed because older frameworks are missing the extension method. The first to compare. The second to compare. True if the spans were identical, false otherwise. int.Parse() a ReadOnlySpan<char>, with a fallback for older frameworks. The to parse. The parsed . Sets the in to , or copies exif tags if already contains an . The to store the exif data in. The to copy exif tags from. If already contains an , controls whether existing exif tags in will be overwritten with any conflicting tags from . Reads a iTXt chunk, which contains international text data. It contains: - A uncompressed keyword. - Compression flag, indicating if a compression is used. - Compression method. - Language tag (optional). - A translated keyword (optional). - Text data, which is either compressed or uncompressed. The metadata to decode to. The containing the data. Decompresses a byte array with zlib compressed text data. Compressed text data bytes. The string encoding to use. The uncompressed value. The . Reads the next data chunk. Count of bytes in the next data chunk, or 0 if there are no more data chunks left. Reads a chunk from the stream. The image format chunk. The . Validates the png chunk. The . Reads the cycle redundancy chunk from the data. Skips the chunk data and the cycle redundancy chunk read from the data. The image format chunk. Reads the chunk data from the stream. The length of the chunk data to read. Identifies the chunk type from the chunk. Thrown if the input stream is not valid. Attempts to read the length of the next chunk. Whether the length was read. Tries to reads a text chunk keyword, which have some restrictions to be valid: Keywords shall contain only printable Latin-1 characters and should not have leading or trailing whitespace. See: https://www.w3.org/TR/PNG/#11zTXt The keyword bytes. The name. True, if the keyword could be read and is valid. Image encoder for writing image data to a stream in png format. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to monitor for cancellation requests. A representing the asynchronous operation. Performs the png encoding operation. The maximum block size, defaults at 64k for uncompressed blocks. Used the manage memory allocations. The configuration instance for the decoding operation. Reusable buffer for writing general data. Reusable buffer for writing chunk data. The encoder options The bit depth. Gets or sets a value indicating whether to use 16 bit encoding for supported color types. The number of bytes per pixel. The image width. The image height. The raw data of previous scanline. The raw data of current scanline. Initializes a new instance of the class. The to use for buffer allocations. The configuration. The options for influencing the encoder Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Convert transparent pixels, to transparent black pixels, which can yield to better compression in some cases. The type of the pixel. The cloned image where the transparent pixels will be changed. Creates the quantized image and sets calculates and sets the bit depth. The type of the pixel. The image to quantize. Cloned image with transparent pixels are changed to black. The quantized image. Collects a row of grayscale pixels. The pixel format. The image row span. Collects a row of true color pixel data. The pixel format. The row span. Encodes the pixel data line by line. Each scanline is encoded in the most optimal manner to improve compression. The pixel format. The row span. The quantized pixels. Can be null. The row. Apply the line filter for the raw scanline to enable better compression. Collects the pixel data line by line for compressing. Each scanline is filtered in the most optimal manner to improve compression. The pixel format. The row span. The filtered buffer. Used for attempting optimized filtering. The quantized pixels. Can be . The row number. Encodes the indexed pixel data (with palette) for Adam7 interlaced mode. The row span. The filtered buffer. Used for attempting optimized filtering. Applies all PNG filters to the given scanline and returns the filtered scanline that is deemed to be most compressible, using lowest total variation as proxy for compressibility. Writes the header chunk to the stream. The containing image data. Writes the palette chunk to the stream. Should be written before the first IDAT chunk. The pixel format. The containing image data. The quantized frame. Writes the physical dimension information to the stream. Should be written before IDAT chunk. The containing image data. The image metadata. Writes the eXIf chunk to the stream, if any EXIF Profile values are present in the metadata. The containing image data. The image metadata. Writes an iTXT chunk, containing the XMP metdata to the stream, if such profile is present in the metadata. The containing image data. The image metadata. Writes a text chunk to the stream. Can be either a tTXt, iTXt or zTXt chunk, depending whether the text contains any latin characters or should be compressed. The containing image data. The image metadata. Compresses a given text using Zlib compression. The text bytes to compress. The compressed text byte array. Writes the gamma information to the stream. Should be written before PLTE and IDAT chunk. The containing image data. Writes the transparency chunk to the stream. Should be written after PLTE and before IDAT. The containing image data. The image metadata. Writes the pixel information to the stream. The pixel format. The image. The quantized pixel data. Can be null. The stream. Allocates the buffers for each scanline. The bytes per scanline. Encodes the pixels. The type of the pixel. The pixels. The quantized pixels span. The deflate stream. Interlaced encoding the pixels. The type of the pixel. The image. The deflate stream. Interlaced encoding the quantized (indexed, with palette) pixels. The type of the pixel. The quantized. The deflate stream. Writes the chunk end to the stream. The containing image data. Writes a chunk to the stream. The to write to. The type of chunk to write. The containing data. Writes a chunk of a specified length to the stream at the given offset. The to write to. The type of chunk to write. The containing data. The position to offset the data at. The of the data to write. Calculates the scanline length. The width of the row. The representing the length. The helper methods for class. Packs the given 8 bit array into and array of depths. The source span in 8 bits. The resultant span in . The bit depth. The scaling factor. The options structure for the . Initializes a new instance of the class. The source. The helper methods for the PNG encoder options. Adjusts the options based upon the given metadata. The options. The PNG metadata. if set to true [use16 bit]. The bytes per pixel. Creates the quantized frame. The type of the pixel. The options. The image. Calculates the bit depth value. The type of the pixel. The options. The quantized frame. Calculates the correct number of bytes per pixel for the given color type. Bytes per pixel. Returns a suggested for the given This is not exhaustive but covers many common pixel formats. Returns a suggested for the given This is not exhaustive but covers many common pixel formats. Provides enumeration of available PNG filter methods. With the None filter, the scanline is transmitted unmodified. The Sub filter transmits the difference between each byte and the value of the corresponding byte of the prior pixel. The Up filter is just like the filter except that the pixel immediately above the current pixel, rather than just to its left, is used as the predictor. The Average filter uses the average of the two neighboring pixels (left and above) to predict the value of a pixel. The Paeth filter computes a simple linear function of the three neighboring pixels (left, above, upper left), then chooses as predictor the neighboring pixel closest to the computed value. Computes the output scanline using all five filters, and selects the filter that gives the smallest sum of absolute values of outputs. This method usually outperforms any single fixed filter choice. Registers the image encoders, decoders and mime type detectors for the png format. Gets the current instance. Represents the png header chunk. Gets the dimension in x-direction of the image in pixels. Gets the dimension in y-direction of the image in pixels. Gets the bit depth. Bit depth is a single-byte integer giving the number of bits per sample or per palette index (not per pixel). Valid values are 1, 2, 4, 8, and 16, although not all values are allowed for all color types. Gets the color type. Color type is a integer that describes the interpretation of the image data. Color type codes represent sums of the following values: 1 (palette used), 2 (color used), and 4 (alpha channel used). Gets the compression method. Indicates the method used to compress the image data. At present, only compression method 0 (deflate/inflate compression with a sliding window of at most 32768 bytes) is defined. Gets the preprocessing method. Indicates the preprocessing method applied to the image data before compression. At present, only filter method 0 (adaptive filtering with five basic filter types) is defined. Gets the transmission order. Indicates the transmission order of the image data. Two values are currently defined: 0 (no interlace) or 1 (Adam7 interlace). Validates the png header. Thrown if the image does pass validation. Writes the header to the given buffer. The buffer to write to. Parses the PngHeader from the given data buffer. The data to parse. The parsed PngHeader. Detects png file headers Provides enumeration of available PNG interlace modes. Non interlaced Adam 7 interlacing. Provides Png specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the number of bits per sample or per palette index (not per pixel). Not all values are allowed for all values. Gets or sets the color type. Gets or sets a value indicating whether this instance should write an Adam7 interlaced image. Gets or sets the gamma value for the image. Gets or sets the Rgb24 transparent color. This represents any color in an 8 bit Rgb24 encoded png that should be transparent. Gets or sets the Rgb48 transparent color. This represents any color in a 16 bit Rgb24 encoded png that should be transparent. Gets or sets the 8 bit grayscale transparent color. This represents any color in an 8 bit grayscale encoded png that should be transparent. Gets or sets the 16 bit grayscale transparent color. This represents any color in a 16 bit grayscale encoded png that should be transparent. Gets or sets a value indicating whether the image contains a transparency chunk and markers were decoded. Gets or sets the collection of text data stored within the iTXt, tEXt, and zTXt chunks. Used for conveying textual information associated with the image. Provides methods to allow the decoding of raw scanlines to image rows of different pixel formats. TODO: We should make this a stateful class or struct to reduce the number of arguments on methods (most are invariant). Stores text data contained in the iTXt, tEXt, and zTXt chunks. Used for conveying textual information associated with the image, like the name of the author, the copyright information, the date, where the image was created, or some other information. Initializes a new instance of the struct. The keyword of the property. The value of the property. An optional language tag. A optional translated keyword. Gets the keyword of this which indicates the type of information represented by the text string as described in https://www.w3.org/TR/PNG/#11keywords. Typical properties are the author, copyright information or other meta information. Gets the value of this . Gets an optional language tag defined in https://www.w3.org/TR/PNG/#2-RFC-3066 indicates the human language used by the translated keyword and the text. If the first word is two or three letters long, it is an ISO language code https://www.w3.org/TR/PNG/#2-ISO-639. Examples: cn, en-uk, no-bok, x-klingon, x-KlInGoN. Gets an optional translated keyword, should contain a translation of the keyword into the language indicated by the language tag. Compares two objects. The result specifies whether the values of the properties of the two objects are equal. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects. The result specifies whether the values of the properties of the two objects are unequal. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Indicates whether this instance and a specified object are equal. The object to compare with the current instance. true if and this instance are the same type and represent the same value; otherwise, false. Returns the hash code for this instance. A 32-bit signed integer that is the hash code for this instance. Returns the fully qualified type name of this instance. A containing a fully qualified type name. Indicates whether the current object is equal to another object of the same type. True if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Cold path optimizations for throwing png format based exceptions. Enum indicating how the transparency should be handled on encoding. The transparency will be kept as is. Converts fully transparent pixels that may contain R, G, B values which are not 0, to transparent black, which can yield in better compression in some cases. The options for decoding tga images. Currently empty, but this may change in the future. Configuration options for use during tga encoding. Gets the number of bits per pixel. Gets a value indicating whether run length compression should be used. Enumerates the available bits per pixel the tga encoder supports. 8 bits per pixel. Each pixel consists of 1 byte. 16 bits per pixel. Each pixel consists of 2 bytes. 24 bits per pixel. Each pixel consists of 3 bytes. 32 bits per pixel. Each pixel consists of 4 bytes. Indicates if compression is used. No compression is used. Run length encoding is used. Registers the image encoders, decoders and mime type detectors for the tga format. The list of mimetypes that equate to a targa file. The list of file extensions that equate to a targa file. The file header length of a tga image in bytes. Image decoder for Truevision TGA images. Performs the tga decoding operation. A scratch buffer to reduce allocations. The metadata. The tga specific metadata. The file header containing general information about the image. Used for allocating memory during processing operations. The stream to decode from. The bitmap decoder options. Indicates whether there is a alpha channel present. Initializes a new instance of the class. The configuration. The options. Gets the dimensions of the image. Reads a uncompressed TGA image with a palette. The pixel type. The width of the image. The height of the image. The to assign the palette to. The color palette. Color map size of one entry in bytes. The image origin. Reads a run length encoded TGA image with a palette. The pixel type. The width of the image. The height of the image. The to assign the palette to. The color palette. Color map size of one entry in bytes. The image origin. Reads a uncompressed monochrome TGA image. The pixel type. The width of the image. The height of the image. The to assign the palette to. the image origin. Reads a uncompressed TGA image where each pixels has 16 bit. The pixel type. The width of the image. The height of the image. The to assign the palette to. The image origin. Reads a uncompressed TGA image where each pixels has 24 bit. The pixel type. The width of the image. The height of the image. The to assign the palette to. The image origin. Reads a uncompressed TGA image where each pixels has 32 bit. The pixel type. The width of the image. The height of the image. The to assign the palette to. The image origin. Reads a run length encoded TGA image. The pixel type. The width of the image. The height of the image. The to assign the palette to. The bytes per pixel. The image origin. Produce uncompressed tga data from a run length encoded stream. The width of the image. The height of the image. Buffer for uncompressed data. The bytes used per pixel. Returns the y- value based on the given height. The y- value representing the current row. The height of the image. The image origin. The representing the inverted value. Indicates whether the y coordinates needs to be inverted, to keep a top left origin. The image origin. True, if y coordinate needs to be inverted. Returns the x- value based on the given width. The x- value representing the current column. The width of the image. The image origin. The representing the inverted value. Indicates whether the x coordinates needs to be inverted, to keep a top left origin. The image origin. True, if x coordinate needs to be inverted. Reads the tga file header from the stream. The containing image data. The image origin. Image encoder for writing an image to a stream as a targa truevision image. Gets or sets the number of bits per pixel. Gets or sets a value indicating whether no compression or run length compression should be used. Image encoder for writing an image to a stream as a truevision targa image. Used for allocating memory during processing operations. The global configuration. Reusable buffer for writing data. The color depth, in number of bits per pixel. Indicates if run length compression should be used. Initializes a new instance of the class. The encoder options. The memory manager. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Writes the pixel data to the binary stream. The pixel format. The to write to. The containing pixel data. Writes a run length encoded tga image to the stream. The pixel type. The stream to write the image to. The image to encode. Finds consecutive pixels which have the same value. The pixel type. The pixels of the image. X coordinate to start searching for the same pixels. Y coordinate to start searching for the same pixels. The number of equal pixels. Writes the 8bit pixels uncompressed to the stream. The pixel format. The to write to. The containing pixel data. Writes the 16bit pixels uncompressed to the stream. The pixel format. The to write to. The containing pixel data. Writes the 24bit pixels uncompressed to the stream. The pixel format. The to write to. The containing pixel data. Writes the 32bit pixels uncompressed to the stream. The pixel format. The to write to. The containing pixel data. Convert the pixel values to grayscale using ITU-R Recommendation BT.709. The pixel to get the luminance from. This block of bytes tells the application detailed information about the targa image. Defines the size of the data structure in the targa file. Gets the id length. This field identifies the number of bytes contained in Field 6, the Image ID Field. The maximum number of characters is 255. A value of zero indicates that no Image ID field is included with the image. Gets the color map type. This field indicates the type of color map (if any) included with the image. There are currently 2 defined values for this field: 0 - indicates that no color-map data is included with this image. 1 - indicates that a color-map is included with this image. Gets the image type. The TGA File Format can be used to store Pseudo-Color, True-Color and Direct-Color images of various pixel depths. Gets the start of the color map. This field and its sub-fields describe the color map (if any) used for the image. If the Color Map Type field is set to zero, indicating that no color map exists, then these 5 bytes should be set to zero. Gets the total number of color map entries included. Gets the number of bits per entry. Typically 15, 16, 24 or 32-bit values are used. Gets the XOffset. These bytes specify the absolute horizontal coordinate for the lower left corner of the image as it is positioned on a display device having an origin at the lower left of the screen. Gets the YOffset. These bytes specify the absolute vertical coordinate for the lower left corner of the image as it is positioned on a display device having an origin at the lower left of the screen. Gets the width of the image in pixels. Gets the height of the image in pixels. Gets the number of bits per pixel. This number includes the Attribute or Alpha channel bits. Common values are 8, 16, 24 and 32 but other pixel depths could be used. Gets the ImageDescriptor. ImageDescriptor contains two pieces of information. Bits 0 through 3 contain the number of attribute bits per pixel. Attribute bits are found only in pixels for the 16- and 32-bit flavors of the TGA format and are called alpha channel, overlay, or interrupt bits. Bits 4 and 5 contain the image origin location (coordinate 0,0) of the image. This position may be any of the four corners of the display screen. When both of these bits are set to zero, the image origin is the lower-left corner of the screen. Bits 6 and 7 of the ImageDescriptor field are unused and should be set to 0. Registers the image encoders, decoders and mime type detectors for the tga format. Gets the current instance. Detects tga file headers. Bottom left origin. Bottom right origin. Top left origin. Top right origin. Defines the tga image type. The TGA File Format can be used to store Pseudo-Color, True-Color and Direct-Color images of various pixel depths. No image data included. Uncompressed, color mapped image. Uncompressed true color image. Uncompressed Black and white (grayscale) image. Run length encoded, color mapped image. Run length encoded, true color image. Run length encoded, black and white (grayscale) image. Extension methods for TgaImageType enum. Checks if this tga image type is run length encoded. The tga image type. True, if this image type is run length encoded, otherwise false. Checks, if the image type has valid value. The image type. true, if its a valid tga image type. Provides TGA specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the number of bits per pixel. Gets or sets the the number of alpha bits per pixel. Cold path optimization for throwing 's The error message for the exception. Cold path optimization for throwing 's The error message for the exception. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Cold path optimization for throwing 's The error message for the exception. Pack Bits compression for tiff images. See Tiff Spec v6, section 9. Bitwriter for writing compressed CCITT T4 1D data. The modified huffman is basically the same as CCITT T4, but without EOL markers and padding at the end of the rows. Initializes a new instance of the class. The output stream to write the compressed data. The memory allocator. The width of the image. The bits per pixel. Indicates if the modified huffman RLE should be used. Writes a image compressed with CCITT T4 to the output buffer. The pixels as 8-bit gray array. The strip height. The destination for the compressed data. Bitwriter for writing compressed CCITT T6 2D data. Vertical codes from -3 to +3. Initializes a new instance of the class. The output stream to write the compressed data. The memory allocator. The width of the image. The bits per pixel. Writes a image compressed with CCITT T6 to the output buffer. The pixels as 8-bit gray array. The strip height. The destination for the compressed data. Finds the end of a pixel run. The row of pixels to examine. The index of the first pixel in to examine. Color of pixels in the run. If not specified, the color at will be used. The index of the first pixel at or after that does not match , or the length of , whichever comes first. Writes a run to the output buffer. The length of the run. If true the run is white pixels, if false the run is black pixels. The destination to write the run to. Common functionality for CCITT T4 and T6 Compression Initializes a new instance of the class. The output. The allocator. The width. The bits per pixel. Gets the best makeup run length for a given run length A run length needing a makeup code The makeup length for . Gets the terminating code for a run length. The run length to get the terminating code for. The length of the terminating code. If true, the run is of white pixels. If false the run is of black pixels The terminating code for a run of length Gets the makeup code for a run length. The run length to get the makeup code for. The length of the makeup code. If true, the run is of white pixels. If false the run is of black pixels The makeup code for a run of length Pads output to the next byte If the output is not currently on a byte boundary, zero-pad it to the next byte Writes a code to the output. The length of the code to write. The code to be written. The destination buffer to write the code to. Writes a image compressed with CCITT T6 to the stream. The pixels as 8-bit gray array. The strip height. Compress a data strip The pixels as 8-bit gray array. The strip height. The destination for the compressed data. Encodes and compresses the image data using dynamic Lempel-Ziv compression. This code is based on the used for GIF encoding. There is potential for a shared implementation. Differences between the GIF and TIFF implementations of the LZW encoding are: (i) The GIF implementation includes an initial 'data size' byte, whilst this is always 8 for TIFF. (ii) The GIF implementation writes a number of sub-blocks with an initial byte indicating the length of the sub-block. In TIFF the data is written as a single block with no length indicator (this can be determined from the 'StripByteCounts' entry). Initializes a new instance of the class. The memory allocator. Encodes and compresses the indexed pixels to the stream. The data to compress. The stream to write to. Represents a reference scan line for CCITT 2D decoding. Initializes a new instance of the struct. Indicates, if white is zero, otherwise black is zero. The scan line. Initializes a new instance of the struct. Indicates, if white is zero, otherwise black is zero. The width of the scanline. Finds b1: The first changing element on the reference line to the right of a0 and of opposite color to a0. The reference or starting element om the coding line. Fill byte. Position of b1. Finds b2: The next changing element to the right of b1 on the reference line. The first changing element on the reference line to the right of a0 and opposite of color to a0. Position of b1. Initializes a new instance of the struct. The type. The bits required. The extension bits. Gets the code type. Enum for the different two dimensional code words for the ccitt fax compression. No valid code word was read. Pass mode: This mode is identified when the position of b2 lies to the left of a1. Indicates horizontal mode. Vertical 0 code word: relative distance between a1 and b1 is 0. Vertical r1 code word: relative distance between a1 and b1 is 1, a1 is to the right of b1. Vertical r2 code word: relative distance between a1 and b1 is 2, a1 is to the right of b1. Vertical r3 code word: relative distance between a1 and b1 is 3, a1 is to the right of b1. Vertical l1 code word: relative distance between a1 and b1 is 1, a1 is to the left of b1. Vertical l2 code word: relative distance between a1 and b1 is 2, a1 is to the left of b1. Vertical l3 code word: relative distance between a1 and b1 is 3, a1 is to the left of b1. 1d extensions code word, extension code is used to indicate the change from the current mode to another mode, e.g., another coding scheme. Not supported. 2d extensions code word, extension code is used to indicate the change from the current mode to another mode, e.g., another coding scheme. Not supported. Class to handle cases where TIFF image data is compressed using Deflate compression. Note that the 'OldDeflate' compression type is identical to the 'Deflate' compression type. Initializes a new instance of the class. The memoryAllocator to use for buffer allocations. The image width. The bits used per pixel. The color type of the pixel data. The tiff predictor used. if set to true decodes the pixel data as big endian, otherwise as little endian. Spectral converter for gray TIFF's which use the JPEG compression. The type of the pixel. Initializes a new instance of the class. The configuration. Class to handle cases where TIFF image data is compressed as a jpeg stream. Initializes a new instance of the class. The configuration. The memoryAllocator to use for buffer allocations. The image width. The bits per pixel. The JPEG tables containing the quantization and/or Huffman tables. The photometric interpretation. Represents a lzw string with a code word and a code length. Initializes a new instance of the class. The code word. Gets the code length; Gets the first character of the codeword. Concatenates two code words. The code word to concatenate. A concatenated lzw string. Writes decoded pixel to buffer at a given position. The buffer to write to. The position to write to. The number of bytes written. Class to handle cases where TIFF image data is compressed using LZW compression. Initializes a new instance of the class. The memoryAllocator to use for buffer allocations. The image width. The bits used per pixel. The color type of the pixel data. The tiff predictor used. if set to true decodes the pixel data as big endian, otherwise as little endian. Bit reader for data encoded with the modified huffman rle method. See TIFF 6.0 specification, section 10. Initializes a new instance of the class. The compressed input stream. The logical order of bits within a byte. The number of bytes to read from the stream. The memory allocator. No EOL is expected at the start of a run for the modified huffman encoding. Class to handle cases where TIFF image data is compressed using Modified Huffman Compression. Initializes a new instance of the class. The memory allocator. The logical order of bits within a byte. The image width. The number of bits per pixel. The photometric interpretation. Gets the logical order of bits within a byte. Class to handle cases where TIFF image data is not compressed. Initializes a new instance of the class. The memory allocator. The width of the image. The bits per pixel. Class to handle cases where TIFF image data is compressed using PackBits compression. Initializes a new instance of the class. The memoryAllocator to use for buffer allocations. The width of the image. The number of bits per pixel. Spectral converter for YCbCr TIFF's which use the JPEG compression. The jpeg data should be always treated as RGB color space. The type of the pixel. Initializes a new instance of the class. This Spectral converter will always convert the pixel data to RGB color. The configuration. Bitreader for reading compressed CCITT T4 1D data. The logical order of bits within a byte. Indicates whether its the first line of data which is read from the image. Indicates whether we have found a termination code which signals the end of a run. We keep track if its the start of the row, because each run is expected to start with a white run. If the image row itself starts with black, a white run of zero is expected. Indicates, if fill bits have been added as necessary before EOL codes such that EOL always ends on a byte boundary. Defaults to false. The minimum code length in bits. The maximum code length in bits. Initializes a new instance of the class. The compressed input stream. The logical order of bits within a byte. The number of bytes to read from the stream. The memory allocator. Indicates, if fill bits have been added as necessary before EOL codes such that EOL always ends on a byte boundary. Defaults to false. Gets the current value. Gets the number of bits read for the current run value. Gets the number of bits read. Gets the available data in bytes. Gets or sets the byte position in the buffer. Gets the compressed image data. Gets a value indicating whether there is more data to read left. Gets or sets a value indicating whether the current run is a white pixel run, otherwise its a black pixel run. Gets the number of pixels in the current run. Gets a value indicating whether the end of a pixel row has been reached. Read the next run of pixels. Initialization for a new row. An EOL is expected before the first data. Resets the current value read and the number of bits read. if set to true resets also the run length. Resets the bits read to 0. Reads the next value. The number of bits to read. The value read. Class to handle cases where TIFF image data is compressed using CCITT T4 compression. Initializes a new instance of the class. The memory allocator. The logical order of bits within a byte. The image width. The number of bits per pixel. Fax compression options. The photometric interpretation. Gets the logical order of bits within a byte. Bit reader for reading CCITT T6 compressed fax data. See: Facsimile Coding Schemes and Coding Control Functions for Group 4 Facsimile Apparatus, itu-t recommendation t.6 Initializes a new instance of the class. The compressed input stream. The logical order of bits within a byte. The number of bytes to read from the stream. The memory allocator. Gets or sets the two dimensional code. No EOL is expected at the start of a run. Swaps the white run to black run an vise versa. Class to handle cases where TIFF image data is compressed using CCITT T6 compression. Initializes a new instance of the class. The memory allocator. The logical order of bits within a byte. The image width. The number of bits per pixel. The photometric interpretation. Gets the logical order of bits within a byte. Decompresses and decodes data using the dynamic LZW algorithms, see TIFF spec Section 13. The stream to decode. As soon as we use entry 4094 of the table (maxTableSize - 2), the lzw compressor write out a (12-bit) ClearCode. At this point, the compressor reinitializes the string table and then writes out 9-bit codes again. End of Information. Minimum code length of 9 bits. Maximum code length of 12 bits. Maximum table size of 4096. Initializes a new instance of the class and sets the stream, where the compressed data should be read from. The stream to read from. is null. Decodes and decompresses all pixel indices from the stream. The pixel array to decode to. Fax compression options, see TIFF spec page 51f (T4Options). No options. If set, 2-dimensional coding is used (otherwise 1-dimensional is assumed). If set, uncompressed mode is used. If set, fill bits have been added as necessary before EOL codes such that EOL always ends on a byte boundary, thus ensuring an EOL-sequence of 1 byte preceded by a zero nibble: xxxx-0000 0000-0001. Methods for undoing the horizontal prediction used in combination with deflate and LZW compressed TIFF images. Inverts the horizontal prediction. Buffer with decompressed pixel data. The width of the image or strip. The color type of the pixel data. If set to true decodes the pixel data as big endian, otherwise as little endian. Applies a horizontal predictor to the rgb row. Make use of the fact that many continuous-tone images rarely vary much in pixel value from one pixel to the next. In such images, if we replace the pixel values by differences between consecutive pixels, many of the differences should be 0, plus or minus 1, and so on.This reduces the apparent information content and allows LZW to encode the data more compactly. The rgb pixel rows. The width. Applies a horizontal predictor to a gray pixel row. The gray pixel rows. The width. Gets the image width. Gets the bits per pixel. Gets the bytes per row. Gets the predictor to use. Should only be used with deflate or lzw compression. Gets the memory allocator. Initializes a new instance of the class. The output stream to write the compressed image to. The memory allocator. The image width. Bits per pixel. The predictor to use (should only be used with deflate or lzw compression). Defaults to none. Gets the compression method to use. Gets the output stream to write the compressed image to. Does any initialization required for the compression. The number of rows per strip. Compresses a strip of the image. Image rows to compress. Image height. The base tiff decompressor class. Initializes a new instance of the class. The memory allocator. The width of the image. The bits per pixel. The predictor. Decompresses image data into the supplied buffer. The to read image data from. The strip offset of stream. The number of bytes to read from the input stream. The height of the strip. The output buffer for uncompressed data. Decompresses image data into the supplied buffer. The to read image data from. The number of bytes to read from the input stream. The height of the strip. The output buffer for uncompressed data. Provides enumeration of the various TIFF compression types the decoder can handle. Image data is stored uncompressed in the TIFF file. Image data is compressed using PackBits compression. Image data is compressed using Deflate compression. Image data is compressed using LZW compression. Image data is compressed using CCITT T.4 fax compression. Image data is compressed using CCITT T.6 fax compression. Image data is compressed using modified huffman compression. The image data is compressed as a JPEG stream. Enumeration representing the compression formats defined by the Tiff file-format. A invalid compression value. No compression. CCITT Group 3 1-Dimensional Modified Huffman run-length encoding. T4-encoding: CCITT T.4 bi-level encoding (see Section 11 of the TIFF 6.0 specification). T6-encoding: CCITT T.6 bi-level encoding (see Section 11 of the TIFF 6.0 specification). LZW compression (see Section 13 of the TIFF 6.0 specification). JPEG compression - obsolete (see Section 22 of the TIFF 6.0 specification). Note: The TIFF encoder does not support this compression and will default to use no compression instead, if this is chosen. JPEG compression (see TIFF Specification, supplement 2). Note: The TIFF encoder does not yet support this compression and will default to use no compression instead, if this is chosen. Deflate compression, using zlib data format (see TIFF Specification, supplement 2). ITU-T Rec. T.82 coding, applying ITU-T Rec. T.85 (JBIG) (see RFC2301). Note: The TIFF encoder does not yet support this compression and will default to use no compression instead, if this is chosen. ITU-T Rec. T.43 representation, using ITU-T Rec. T.82 (JBIG) (see RFC2301). Note: The TIFF encoder does not yet support this compression and will default to use no compression instead, if this is chosen. NeXT 2-bit Grey Scale compression algorithm. Note: The TIFF encoder does not support this compression and will default to use no compression instead, if this is chosen. PackBits compression. ThunderScan 4-bit compression. Note: The TIFF encoder does not support this compression and will default to use no compression instead, if this is chosen. Deflate compression - old. Note: The TIFF encoder does not support this compression and will default to use no compression instead, if this is chosen. Defines constants defined in the TIFF specification. Byte order markers for indicating little endian encoding. Byte order markers for indicating big endian encoding. Byte order markers for indicating little endian encoding. Byte order markers for indicating big endian encoding. Magic number used within the image file header to identify a TIFF format file. The big tiff header magic number The big tiff bytesize of offsets value. RowsPerStrip default value, which is effectively infinity. Size (in bytes) of the Rational and SRational data types The default strip size is 8k. The bits per sample for 1 bit bicolor images. The bits per sample for images with a 4 color palette. The bits per sample for 8 bit images. The bits per sample for color images with 8 bits for each color channel. The list of mimetypes that equate to a tiff. The list of file extensions that equate to a tiff. Enumeration representing the possible uses of extra components in TIFF format files. Unspecified data. Associated alpha data (with pre-multiplied color). Unassociated alpha data. Enumeration representing the fill orders defined by the Tiff file-format. Pixels with lower column values are stored in the higher-order bits of the byte. Pixels with lower column values are stored in the lower-order bits of the byte. Enumeration representing the sub-file types defined by the Tiff file-format. A full-resolution image. Reduced-resolution version of another image in this TIFF file. A single page of a multi-page image. A transparency mask for another image in this TIFF file. Alternative reduced-resolution version of another image in this TIFF file (see DNG specification). Mixed raster content (see RFC2301). Enumeration representing the image orientations defined by the Tiff file-format. The 0th row and 0th column represent the visual top and left-hand side of the image respectively. The 0th row and 0th column represent the visual top and right-hand side of the image respectively. The 0th row and 0th column represent the visual bottom and right-hand side of the image respectively. The 0th row and 0th column represent the visual bottom and left-hand side of the image respectively. The 0th row and 0th column represent the visual left-hand side and top of the image respectively. The 0th row and 0th column represent the visual right-hand side and top of the image respectively. The 0th row and 0th column represent the visual right-hand side and bottom of the image respectively. The 0th row and 0th column represent the visual left-hand side and bottom of the image respectively. Enumeration representing the photometric interpretation formats defined by the Tiff file-format. Bilevel and grayscale: 0 is imaged as white. The maximum value is imaged as black. Not supported by the TiffEncoder. Bilevel and grayscale: 0 is imaged as black. The maximum value is imaged as white. RGB image. Palette Color. A transparency mask. Not supported by the TiffEncoder. Separated: usually CMYK (see Section 16 of the TIFF 6.0 specification). Not supported by the TiffEncoder. YCbCr (see Section 21 of the TIFF 6.0 specification). Not supported by the TiffEncoder. 1976 CIE L*a*b* (see Section 23 of the TIFF 6.0 specification). Not supported by the TiffEncoder. ICC L*a*b* (see TIFF Specification, supplement 1). Not supported by the TiffEncoder. ITU L*a*b* (see RFC2301). Not supported by the TiffEncoder. Color Filter Array (see the DNG specification). Not supported by the TiffEncoder. Linear Raw (see the DNG specification). Not supported by the TiffEncoder. Enumeration representing how the components of each pixel are stored the Tiff file-format. Chunky format. The component values for each pixel are stored contiguously. The order of the components within the pixel is specified by PhotometricInterpretation. For example, for RGB data, the data is stored as RGBRGBRGB. Planar format. The components are stored in separate “component planes.” The values in StripOffsets and StripByteCounts are then arranged as a 2-dimensional array, with SamplesPerPixel rows and StripsPerImage columns. (All of the columns for row 0 are stored first, followed by the columns of row 1, and so on.) PhotometricInterpretation describes the type of data stored in each component plane. For example, RGB data is stored with the Red components in one component plane, the Green in another, and the Blue in another. A mathematical operator that is applied to the image data before an encoding scheme is applied. No prediction. Horizontal differencing. Floating point horizontal differencing. Note: The Tiff Encoder does not yet support this. If this is chosen, the encoder will fallback to none. Specifies how to interpret each data sample in a pixel. Unsigned integer data. Default value. Signed integer data. IEEE floating point data. Undefined data format. The complex int. The complex float. Enumeration representing the sub-file types defined by the Tiff file-format. Full-resolution image data. Reduced-resolution image data. A single page of a multi-page image. Enumeration representing the thresholding applied to image data defined by the Tiff file-format. No dithering or halftoning. An ordered dither or halftone technique. A randomized process such as error diffusion. The TIFF IFD reader class. Gets the byte order. Reads image file directories. Image file directories. Encapsulates the options for the . Gets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoding mode for multi-frame images. Encapsulates the options for the . Gets the number of bits per pixel. Gets the compression type to use. Gets the compression level 1-9 for the deflate compression mode. Defaults to . Gets the PhotometricInterpretation to use. Possible options are RGB, RGB with a color palette, gray or BiColor. If no PhotometricInterpretation is specified or it is unsupported by the encoder, RGB will be used. Gets a value indicating which horizontal prediction to use. This can improve the compression ratio with deflate or lzw compression. Gets the quantizer for creating a color palette image. Implements the 'BlackIsZero' photometric interpretation for 16-bit grayscale images. Initializes a new instance of the class. The configuration. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'BlackIsZero' photometric interpretation (optimized for bilevel images). The pixel format. Implements the 'BlackIsZero' photometric interpretation for 24-bit grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'BlackIsZero' photometric interpretation for 32-bit float grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'BlackIsZero' photometric interpretation for 32-bit grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'BlackIsZero' photometric interpretation (optimized for 4-bit grayscale images). Implements the 'BlackIsZero' photometric interpretation (optimized for 8-bit grayscale images). Implements the 'BlackIsZero' photometric interpretation (for all bit depths). Implements the 'PaletteTiffColor' photometric interpretation (for all bit depths). The number of bits per sample for each pixel. The RGB color lookup table to use for decoding the image. Implements the 'RGB' photometric interpretation with 16 bits for each channel. Initializes a new instance of the class. The configuration. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 'Planar' layout for each color channel with 16 bit. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 24 bits for each channel. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 'Planar' layout for each color channel with 24 bit. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 32 bits for each channel. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 'Planar' layout for each color channel with 32 bit. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation for 4 bits per color channel images. Implements the 'RGB' photometric interpretation (optimized for 8-bit full color images). Implements the 'RGB' photometric interpretation with an alpha channel and with 16 bits for each channel. Initializes a new instance of the class. The configuration. The memory allocator. if set to true decodes the pixel data as big endian, otherwise as little endian. The type of the extra samples. Implements the 'RGB' photometric interpretation with an alpha channel and with 'Planar' layout for each color channel with 16 bit. Initializes a new instance of the class. The extra samples type. If set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and with 24 bits for each channel. Initializes a new instance of the class. The type of the extra samples. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and with 'Planar' layout for each color channel with 24 bit. Initializes a new instance of the class. The extra samples type. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and with 32 bits for each channel. Initializes a new instance of the class. The type of the extra samples. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and a 'Planar' layout for each color channel with 32 bit. Initializes a new instance of the class. The extra samples type. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and 8 bits per channel. Implements the 'RGB' photometric interpretation with an alpha channel and with 32 bits for each channel. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with an alpha channel and with 'Planar' layout (for all bit depths). Decodes pixel data using the current photometric interpretation. The buffers to read image data from. The image buffer to write pixels to. The x-coordinate of the left-hand side of the image block. The y-coordinate of the top of the image block. The width of the image block. The height of the image block. Implements the 'RGB' photometric interpretation with alpha channel (for all bit depths). Implements the 'RGB' photometric interpretation with 32 bits for each channel. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'RGB' photometric interpretation with 'Planar' layout (for all bit depths). Decodes pixel data using the current photometric interpretation. The buffers to read image data from. The image buffer to write pixels to. The x-coordinate of the left-hand side of the image block. The y-coordinate of the top of the image block. The width of the image block. The height of the image block. Implements the 'RGB' photometric interpretation (for all bit depths). The base class for photometric interpretation decoders. The pixel format. Decodes source raw pixel data using the current photometric interpretation. The buffer to read image data from. The image buffer to write pixels to. The x-coordinate of the left-hand side of the image block. The y-coordinate of the top of the image block. The width of the image block. The height of the image block. The base class for planar color decoders. The pixel format. Decodes source raw pixel data using the current photometric interpretation. The buffers to read image data from. The image buffer to write pixels to. The x-coordinate of the left-hand side of the image block. The y-coordinate of the top of the image block. The width of the image block. The height of the image block. Provides enumeration of the various TIFF photometric interpretation implementation types. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for bilevel images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for 4-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for 8-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for 16-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for 24-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Optimized implementation for 32-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Pixel data is 32-bit float. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for bilevel images. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for 4-bit images. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for 8-bit images. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for 16-bit images. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for 24-bit images. Grayscale: 0 is imaged as white. The maximum value is imaged as black. Optimized implementation for 32-bit images. Grayscale: 0 is imaged as black. The maximum value is imaged as white. Pixel data is 32-bit float. Palette-color. RGB Full Color. RGB color image with 2 bits for each channel. RGBA color image with 2 bits for each channel. RGB color image with 3 bits for each channel. RGBA color image with 3 bits for each channel. RGB color image with 4 bits for each channel. RGBA color image with 4 bits for each channel. RGB color image with 5 bits for each channel. RGBA color image with 5 bits for each channel. RGB color image with 6 bits for each channel. RGBA color image with 6 bits for each channel. RGB Full Color. Optimized implementation for 8-bit images. RGBA Full Color with 8-bit for each channel. RGB color image with 10 bits for each channel. RGBA color image with 10 bits for each channel. RGB color image with 12 bits for each channel. RGBA color image with 12 bits for each channel. RGB color image with 14 bits for each channel. RGBA color image with 14 bits for each channel. RGB color image with 16 bits for each channel. RGBA color image with 16 bits for each channel. RGB color image with 24 bits for each channel. RGBA color image with 24 bits for each channel. RGB color image with 32 bits for each channel. RGBA color image with 32 bits for each channel. RGB color image with 32 bits floats for each channel. RGBA color image with 32 bits floats for each channel. RGB Full Color. Planar configuration of data. 8 Bit per color channel. RGBA color image with an alpha channel. Planar configuration of data. 8 Bit per color channel. RGB Full Color. Planar configuration of data. 16 Bit per color channel. RGB Color with an alpha channel. Planar configuration of data. 16 Bit per color channel. RGB Full Color. Planar configuration of data. 24 Bit per color channel. RGB Color with an alpha channel. Planar configuration of data. 24 Bit per color channel. RGB Full Color. Planar configuration of data. 32 Bit per color channel. RGB Color with an alpha channel. Planar configuration of data. 32 Bit per color channel. The pixels are stored in YCbCr format. The pixels are stored in YCbCr format as planar. Implements the 'WhiteIsZero' photometric interpretation for 16-bit grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'WhiteIsZero' photometric interpretation (optimized for bilevel images). Implements the 'WhiteIsZero' photometric interpretation for 24-bit grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'WhiteIsZero' photometric interpretation for 32-bit float grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'WhiteIsZero' photometric interpretation for 32-bit grayscale images. Initializes a new instance of the class. if set to true decodes the pixel data as big endian, otherwise as little endian. Implements the 'WhiteIsZero' photometric interpretation (optimized for 4-bit grayscale images). Implements the 'WhiteIsZero' photometric interpretation (optimized for 8-bit grayscale images). Implements the 'WhiteIsZero' photometric interpretation (for all bit depths). Converts YCbCr data to rgb data. Enumerates the available bits per pixel for the tiff format. 1 bit per pixel, for bi-color image. 4 bits per pixel, for images with a color palette. 6 bits per pixel. 2 bit for each color channel. Note: The TiffEncoder does not yet support 2 bits per color channel and will default to 24 bits per pixel instead. 8 bits per pixel, grayscale or color palette images. 10 bits per pixel, for gray images. Note: The TiffEncoder does not yet support 10 bits per pixel and will default to 24 bits per pixel instead. 12 bits per pixel. 4 bit for each color channel. Note: The TiffEncoder does not yet support 4 bits per color channel and will default to 24 bits per pixel instead. 14 bits per pixel, for gray images. Note: The TiffEncoder does not yet support 14 bits per pixel images and will default to 24 bits per pixel instead. 16 bits per pixel, for gray images. Note: The TiffEncoder does not yet support 16 bits per color channel and will default to 24 bits per pixel instead. 24 bits per pixel. One byte for each color channel. 30 bits per pixel. 10 bit for each color channel. Note: The TiffEncoder does not yet support 10 bits per color channel and will default to 24 bits per pixel instead. 36 bits per pixel. 12 bit for each color channel. Note: The TiffEncoder does not yet support 12 bits per color channel and will default to 24 bits per pixel instead. 42 bits per pixel. 14 bit for each color channel. Note: The TiffEncoder does not yet support 14 bits per color channel and will default to 24 bits per pixel instead. 48 bits per pixel. 16 bit for each color channel. Note: The TiffEncoder does not yet support 16 bits per color channel and will default to 24 bits per pixel instead. The number of bits per component. The bits for the channel 0. The bits for the channel 1. The bits for the channel 2. The bits for the alpha channel. The number of channels. Initializes a new instance of the struct. The bits for the channel 0. The bits for the channel 1. The bits for the channel 2. The bits for the channel 3. Tries to parse a ushort array and convert it into a TiffBitsPerSample struct. The value to parse. The tiff bits per sample. True, if the value could be parsed. Converts the bits per sample struct to an ushort array. Bits per sample as ushort array. Gets the bits per pixel for the given bits per sample. Bits per pixel. Registers the image encoders, decoders and mime type detectors for the TIFF format. Image decoder for generating an image out of a TIFF stream. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Gets or sets the decoding mode for multi-frame images. Performs the tiff decoding operation. Used for allocating memory during processing operations. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoding mode for multi-frame images The stream to decode from. Indicates the byte order of the stream. Indicating whether is BigTiff format. Initializes a new instance of the class. The configuration. The decoder options. Gets or sets the bits per sample. Gets or sets the bits per pixel. Gets or sets the lookup table for RGB palette colored images. Gets or sets the photometric interpretation implementation to use when decoding the image. Gets or sets the reference black and white for decoding YCbCr pixel data. Gets or sets the YCbCr coefficients. Gets or sets the YCbCr sub sampling. Gets or sets the compression used, when the image was encoded. Gets or sets the Fax specific compression options. Gets or sets the the logical order of bits within a byte. Gets or sets the extra samples type. Gets or sets the JPEG tables when jpeg compression is used. Gets or sets the planar configuration type to use when decoding the image. Gets or sets the photometric interpretation. Gets or sets the sample format. Gets or sets the horizontal predictor. Decodes the image data from a specified IFD. The pixel format. The IFD tags. The token to monitor cancellation. The tiff frame. Calculates the size (in bytes) for a pixel buffer using the determined color format. The width for the desired pixel buffer. The height for the desired pixel buffer. The index of the plane for planar image configuration (or zero for chunky). The size (in bytes) of the required pixel buffer. Decodes the image data for planar encoded pixel data. The pixel format. The image frame to decode data into. The number of rows per strip of data. An array of byte offsets to each strip in the image. An array of the size of each strip (in bytes). The token to monitor cancellation. Decodes the image data for chunky encoded pixel data. The pixel format. The image frame to decode data into. The rows per strip. The strip offsets. The strip byte counts. The token to monitor cancellation. Gets the width of the image frame. The image frame exif profile. The image width. Gets the height of the image frame. The image frame exif profile. The image height. The decoder metadata creator. The decoder options parser. Determines the TIFF compression and color types, and reads any associated parameters. The options. The exif profile of the frame to decode. The IFD entries container to read the image format information for current frame. Encoder for writing the data image to a stream in TIFF format. Performs the TIFF encoding operation. Used for allocating memory during processing operations. A scratch buffer to reduce allocations. The global configuration. The quantizer for creating color palette image. Sets the deflate compression level. The default predictor is None. The default bits per pixel is Bit24. The default compression is None. The default photometric interpretation is Rgb. Initializes a new instance of the class. The options for the encoder. The memory allocator. Gets the photometric interpretation implementation to use when encoding the image. Gets or sets the compression implementation to use when encoding the image. Gets or sets a value indicating which horizontal predictor to use. This can improve the compression ratio with deflate compression. Gets the bits per pixel. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. The token to request cancellation. Writes the TIFF file header. The to write data to. The marker to write the first IFD offset. Writes all data required to define an image. The pixel format. The to write data to. The tiff frame. The image metadata (resolution values for each frame). The image (common metadata for root frame). The marker to write this IFD offset. The next IFD offset value. Calculates the number of rows written per strip. The height of the image. The number of bytes per row. The compression used. Number of rows per strip. Writes a TIFF IFD block. The to write data to. The IFD entries to write to the file. The marker to write the next IFD offset (if present). Description of extra components. The data is unspecified, not supported. The extra data is associated alpha data (with pre-multiplied color). The extra data is unassociated alpha data is transparency information that logically exists independent of an image; it is commonly called a soft matte. Encapsulates the means to encode and decode Tiff images. Gets the current instance. The TIFF format type enum. The TIFF file format type. The BigTIFF format type. Provides Tiff specific metadata information for the frame. Initializes a new instance of the class. Initializes a new instance of the class. The other tiff frame metadata. Gets or sets the bits per pixel. Gets or sets number of bits per component. Gets or sets the compression scheme used on the image data. Gets or sets the color space of the image data. Gets or sets a mathematical operator that is applied to the image data before an encoding scheme is applied. Returns a new instance parsed from the given Exif profile. The Exif profile containing tiff frame directory tags to parse. If null, a new instance is created and parsed instead. The . Parses the given Exif profile to populate the properties of the tiff frame meta data. The tiff frame meta data. The Exif profile containing tiff frame directory tags. Detects tiff file headers Provides Tiff specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the byte order. Gets or sets the format type. Cold path optimizations for throwing tiff format based exceptions. Cold path optimization for throwing -s The error message for the exception. Utility class to read a sequence of bits from an array Initializes a new instance of the struct. The array to read data from. Reads the specified number of bits from the array. The number of bits to read. The value read from the array. Moves the reader to the next row of byte-aligned data. Helper methods for TIFF decoding. Finds the padding needed to round 'valueToRoundUp' to the next integer multiple of subSampling value. The width or height to round up. The sub sampling. The padding. Gets the bits per pixel. Gets the bytes per row. Adds image format information to the specified IFD. The rows per strip. The strip offsets. The strip byte counts. The base class for composite color types: 8-bit gray, 24-bit RGB (4-bit gray, 16-bit (565/555) RGB, 32-bit RGB, CMYK, YCbCr). Utility class for writing TIFF data to a . A scratch buffer to reduce allocations. Initializes a new instance of the class. The output stream. Gets a value indicating whether the architecture is little-endian. Gets the current position within the stream. Gets the base stream. Writes an empty four bytes to the stream, returning the offset to be written later. The offset to be written later. Writes an array of bytes to the current stream. The bytes to write. Writes the specified value. The bytes to write. Writes a byte to the current stream. The byte to write. Writes a two-byte unsigned integer to the current stream. The two-byte unsigned integer to write. Writes a four-byte unsigned integer to the current stream. The four-byte unsigned integer to write. Writes an array of bytes to the current stream, padded to four-bytes. The bytes to write. Writes a four-byte unsigned integer to the specified marker in the stream. The offset returned when placing the marker The four-byte unsigned integer to write. Disposes instance, ensuring any unwritten data is flushed. Implements decoding for lossy alpha chunks which may be compressed. Initializes a new instance of the class. The width of the image. The height of the image. The (maybe compressed) alpha data. The first byte of the alpha image stream contains information on how to decode the stream. Used for allocating memory during decoding. The configuration. Gets the width of the image. Gets the height of the image. Gets the used filter type. Gets or sets the last decoded row. Gets or sets the row before the last decoded row. Gets information for decoding Vp8L compressed alpha data. Gets the decoded alpha data. Gets a value indicating whether the alpha channel uses compression. Gets the (maybe compressed) alpha data. Gets the Vp8L decoder which is used to de compress the alpha channel, if needed. Gets a value indicating whether the decoding needs 1 byte per pixel for decoding. Although Alpha Channel requires only 1 byte per pixel, sometimes Vp8LDecoder may need to allocate 4 bytes per pixel internally during decode. Decodes and filters the maybe compressed alpha data. Applies filtering to a set of rows. The first row index to start filtering. The last row index for filtering. The destination to store the filtered data. The stride to use. Once the image-stream is decoded into ARGB color values, the transparency information will be extracted from the green channel of the ARGB quadruplet. The VP8L decoder. Row-processing for the special case when alpha data contains only one transform (color indexing), and trivial non-green literals. The VP8L meta data. True, if alpha channel needs one byte per pixel, otherwise 4. Methods for encoding the alpha data of a VP8 image. Encodes the alpha channel data. Data is either compressed as lossless webp image or uncompressed. The pixel format. The to encode from. The global configuration. The memory manager. Indicates, if the data should be compressed with the lossless webp compression. The size in bytes of the alpha data. The encoded alpha data. Store the transparency in the green channel. The pixel format. The to encode from. A byte sequence of length width * height, containing all the 8-bit transparency values in scan order. The transparency image. Extract the alpha data of the image. The pixel format. The to encode from. The global configuration. The memory manager. A byte sequence of length width * height, containing all the 8-bit transparency values in scan order. Base class for VP8 and VP8L bitreader. Gets or sets the raw encoded image data. Copies the raw encoded image data from the stream into a byte array. The input stream. Number of bytes to read as indicated from the chunk size. Used for allocating memory during reading data from the stream. A bit reader for VP8 streams. Current value. Current range minus 1. In [127, 254] interval. Number of valid bits left. Max packed-read position of the buffer. True if input is exhausted. Byte position in buffer. Initializes a new instance of the class. The input stream to read from. The raw image data size in bytes. Used for allocating memory during reading data from the stream. The partition length. Start index in the data array. Defaults to 0. Initializes a new instance of the class. The raw encoded image data. The partition length. Start index in the data array. Defaults to 0. A bit reader for reading lossless webp streams. Maximum number of bits (inclusive) the bit-reader can handle. Number of bits prefetched. Minimum number of bytes ready after VP8LFillBitWindow. Pre-fetched bits. Buffer length. Byte position in buffer. Current bit-reading position in value. Initializes a new instance of the class. Lossless compressed image data. Initializes a new instance of the class. The input stream to read from. The raw image data size in bytes. Used for allocating memory during reading data from the stream. Gets or sets a value indicating whether a bit was read past the end of buffer. Reads a unsigned short value from the buffer. The bits of each byte are read in least-significant-bit-first order. The number of bits to read (should not exceed 16). A ushort value. Reads a single bit from the stream. True if the bit read was 1, false otherwise. For jumping over a number of bits in the bit stream when accessed with PrefetchBits and FillBitWindow. The number of bits to advance the position. Return the pre-fetched bits, so they can be looked up. The pre-fetched bits. Advances the read buffer by 4 bytes to make room for reading next 32 bits. Returns true if there was an attempt at reading bit past the end of the buffer. True, if end of buffer was reached. If not at EOS, reload up to Vp8LLbits byte-by-byte. Buffer to write to. A scratch buffer to reduce allocations. Initializes a new instance of the class. The expected size in bytes. Initializes a new instance of the class. Used internally for cloning. Writes the encoded bytes of the image to the stream. Call Finish() before this. The stream to write to. Writes the encoded bytes of the image to the given buffer. Call Finish() before this. The destination buffer. Resizes the buffer to write to. The extra size in bytes needed. Returns the number of bytes of the encoded image data. The number of bytes of the image data. Flush leftover bits. Writes the RIFF header to the stream. The stream to write to. The block length. Calculates the chunk size of EXIF or XMP metadata. The metadata profile bytes. The metadata chunk size in bytes. Calculates the chunk size of a alpha chunk. The alpha chunk bytes. The alpha data chunk size in bytes. Writes a metadata profile (EXIF or XMP) to the stream. The stream to write to. The metadata profile's bytes. The chuck type to write. Writes the alpha chunk to the stream. The stream to write to. The alpha channel data bytes. Indicates, if the alpha channel data is compressed. Writes a VP8X header to the stream. The stream to write to. A exif profile or null, if it does not exist. A XMP profile or null, if it does not exist. The width of the image. The height of the image. Flag indicating, if a alpha channel is present. A bit writer for writing lossy webp streams. Number of outstanding bits. Number of pending bits. Initializes a new instance of the class. The expected size in bytes. Initializes a new instance of the class. The expected size in bytes. The Vp8Encoder. Resizes the buffer to write to. The extra size in bytes needed. Writes the encoded image to the stream. The stream to write to. The exif profile. The XMP profile. The width of the image. The height of the image. Flag indicating, if a alpha channel is present. The alpha channel data. Indicates, if the alpha data is compressed. A bit writer for writing lossless webp streams. A scratch buffer to reduce allocations. This is the minimum amount of size the memory buffer is guaranteed to grow when extra space is needed. Bit accumulator. Number of bits used in accumulator. Current write position. Initializes a new instance of the class. The expected size in bytes. Initializes a new instance of the class. Used internally for cloning. This function writes bits into bytes in increasing addresses (little endian), and within a byte least-significant-bit first. This function can write up to 32 bits in one go. Writes the encoded image to the stream. The stream to write to. The exif profile. The XMP profile. The width of the image. The height of the image. Flag indicating, if a alpha channel is present. Internal function for PutBits flushing 32 bits from the written state. Resizes the buffer to write to. The extra size in bytes needed. These five modes are evaluated and their respective entropy is computed. Image decoder options for generating an image out of a webp stream. Gets a value indicating whether the metadata should be ignored when the image is being decoded. Configuration options for use during webp encoding. Gets the webp file format used. Either lossless or lossy. Defaults to lossy. Gets the compression quality. Between 0 and 100. For lossy, 0 gives the smallest size and 100 the largest. For lossless, this parameter is the amount of effort put into the compression: 0 is the fastest but gives larger files compared to the slowest, but best, 100. Defaults to 75. Gets the encoding method to use. Its a quality/speed trade-off (0=fast, 6=slower-better). Defaults to 4. Gets a value indicating whether the alpha plane should be compressed with Webp lossless format. Defaults to true. Gets the number of entropy-analysis passes (in [1..10]). Defaults to 1. Gets the amplitude of the spatial noise shaping. Spatial noise shaping (or sns for short) refers to a general collection of built-in algorithms used to decide which area of the picture should use relatively less bits, and where else to better transfer these bits. The possible range goes from 0 (algorithm is off) to 100 (the maximal effect). Defaults to 50. Gets the strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). A value of 0 will turn off any filtering. Higher value will increase the strength of the filtering process applied after decoding the picture. The higher the value the smoother the picture will appear. Typical values are usually in the range of 20 to 50. Defaults to 60. Gets a value indicating whether to preserve the exact RGB values under transparent area. Otherwise, discard this invisible RGB information for better compression. The default value is Clear. Gets a value indicating whether near lossless mode should be used. This option adjusts pixel values to help compressibility, but has minimal impact on the visual quality. Gets the quality of near-lossless image preprocessing. The range is 0 (maximum preprocessing) to 100 (no preprocessing, the default). The typical value is around 60. Note that lossy with -q 100 can at times yield better results. Maximum bit length. We want the max value to be attainable and stored in MaxLengthBits bits. Minimum number of pixels for which it is cheaper to encode a distance + length instead of each pixel as a literal. Evaluates best possible backward references for specified quality. The input cacheBits to 'GetBackwardReferences' sets the maximum cache bits to use (passing 0 implies disabling the local color cache). The optimal cache bits is evaluated and set for the cacheBits parameter. The return value is the pointer to the best of the two backward refs viz, refs[0] or refs[1]. Evaluate optimal cache bits for the local color cache. The input bestCacheBits sets the maximum cache bits to use (passing 0 implies disabling the local color cache). The local color cache is also disabled for the lower (smaller then 25) quality. Best cache size. Compute an LZ77 by forcing matches to happen within a given distance cost. We therefore limit the algorithm to the lowest 32 values in the PlaneCode definition. Update (in-place) backward references for the specified cacheBits. A small hash-addressed array to store recently used colors, to be able to recall them with shorter codes. Gets the color entries. Gets the hash shift: 32 - hashBits. Gets the hash bits. Initializes a new color cache. The hashBits determine the size of cache. It will be 1 left shifted by hashBits. Inserts a new color into the cache. The color to insert. Gets a color for a given key. The key to lookup. The color for the key. Returns the index of the given color. The color to check. The index of the color in the cache or -1 if its not present. Gets the index of a color. The color. The index for the color. Adds a new color to the cache. The key. The color to add. The GetLengthCost(costModel, k) are cached in a CostCacheInterval. To perform backward reference every pixel at index index_ is considered and the cost for the MAX_LENGTH following pixels computed. Those following pixels at index index_ + k (k from 0 to MAX_LENGTH) have a cost of: cost = distance cost at index + GetLengthCost(costModel, k) and the minimum value is kept. GetLengthCost(costModel, k) is cached in an array of size MAX_LENGTH. Instead of performing MAX_LENGTH comparisons per pixel, we keep track of the minimal values using intervals of constant cost. An interval is defined by the index_ of the pixel that generated it and is only useful in a range of indices from start to end (exclusive), i.e. it contains the minimum value for pixels between start and end. Intervals are stored in a linked list and ordered by start. When a new interval has a better value, old intervals are split or removed. There are therefore no overlapping intervals. The CostManager is in charge of managing intervals and costs. It caches the different CostCacheInterval, caches the different GetLengthCost(costModel, k) in costCache and the CostInterval's. Gets or sets the number of stored intervals. Gets the costs cache. Contains the GetLengthCost(costModel, k). Update the cost at index i by going over all the stored intervals that overlap with i. The index to update. If 'doCleanIntervals' is true, intervals that end before 'i' will be popped. Given a new cost interval defined by its start at position, its length value and distanceCost, add its contributions to the previous intervals and costs. If handling the interval or one of its sub-intervals becomes to heavy, its contribution is added to the costs right away. Pop an interval from the manager. The interval to remove. Given a current orphan interval and its previous interval, before it was orphaned (which can be NULL), set it at the right place in the list of intervals using the start_ ordering and the previous interval as a hint. Given two intervals, make 'prev' be the previous one of 'next' in 'manager'. Given the cost and the position that define an interval, update the cost at pixel 'i' if it is smaller than the previously computed value. Initializes a new instance of the class. The literal array size. Data container to keep track of cost range for the three dominant entropy symbols. Initializes a new instance of the class. Position of the histogram that accumulates all histograms with the same binId. Number of combine failures per binId. Number of partitions for the three dominant (literal, red and blue) symbol costs. The size of the bin-hash corresponding to the three dominant costs. Maximum number of histograms allowed in greedy combining algorithm. Construct the histograms from the backward references. Partition histograms to different entropy bins for three dominant (literal, red and blue) symbol costs and compute the histogram aggregate bitCost. Given a Histogram set, the mapping of clusters 'clusterMapping' and the current assignment of the cells in 'symbols', merge the clusters and assign the smallest possible clusters values. Perform histogram aggregation using a stochastic approach. true if a greedy approach needs to be performed afterwards, false otherwise. Create a pair from indices "idx1" and "idx2" provided its cost is inferior to "threshold", a negative entropy. The cost of the pair, or 0 if it superior to threshold. Update the cost diff and combo of a pair of histograms. This needs to be called when the the histograms have been merged with a third one. Check whether a pair in the list should be updated as head or not. Pair of histograms. Negative Idx1 value means that pair is out-of-date. Huffman table group. Includes special handling for the following cases: - IsTrivialLiteral: one common literal base for RED/BLUE/ALPHA (not GREEN) - IsTrivialCode: only 1 code (no bit is read from the bitstream) - UsePackedTable: few enough literal symbols, so all the bit codes can fit into a small look-up table PackedTable[] The common literal base, if applicable, is stored in 'LiteralArb'. Gets the Huffman trees. This has a maximum of (5) entry's. Gets or sets a value indicating whether huffman trees for Red, Blue and Alpha Symbols are trivial (have a single code). Gets or sets a the literal argb value of the pixel. If IsTrivialLiteral is true, this is the ARGB value of the pixel, with Green channel being set to zero. Gets or sets a value indicating whether there is only one code. Gets or sets a value indicating whether to use packed table below for short literal code. Gets or sets table mapping input bits to packed values, or escape case to literal code. Five Huffman codes are used at each meta code. Green + length prefix codes + color cache codes. Red. Blue. Alpha. Distance prefix codes. A classic way to do entropy coding where a smaller number of bits are used for more frequent codes. Gets or sets the number of bits used for this symbol. Gets or sets the symbol value or table offset. Represents the Huffman tree. Initializes a new instance of the struct. The HuffmanTree to create an instance from. Gets or sets the symbol frequency. Gets or sets the symbol value. Gets or sets the index for the left sub-tree. Gets or sets the index for the right sub-tree. Represents the tree codes (depth and bits array). Gets or sets the number of symbols. Gets or sets the code lengths of the symbols. Gets or sets the symbol Codes. Holds the tree header in coded form. Gets or sets the code. Value (0..15) or escape code (16, 17, 18). Gets or sets the extra bits for escape codes. Utility functions related to creating the huffman tables. Change the population counts in a way that the consequent Huffman tree compression, especially its RLE-part, give smaller output. Create an optimal Huffman tree. The huffman tree. The histogram. The size of the histogram. The tree depth limit. How many bits are used for the symbol. Get the actual bit values for a tree of bit depths. The huffman tree. Returns the table width of the next 2nd level table. count is the histogram of bit lengths for the remaining symbols, len is the code length of the next processed symbol. Stores code in table[0], table[step], table[2*step], ..., table[end-step]. Assumes that end is an integer multiple of step. Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the bit-wise reversal of the len least significant bits of key. Heuristics for selecting the stride ranges to collapse. Utility functions for the lossless decoder. Returns the exact index where array1 and array2 are different. For an index inferior or equal to bestLenMatch, the return value just has to be strictly inferior to bestLenMatch match. The current behavior is to return 0 if this index is bestLenMatch, and the index itself otherwise. If no two elements are the same, it returns maxLimit. Add green to blue and red channels (i.e. perform the inverse transform of 'subtract green'). The pixel data to apply the transformation. If there are not many unique pixel values, it is more efficient to create a color index array and replace the pixel values by the array's indices. This will reverse the color index transform. The transform data contains color table size and the entries in the color table. The pixel data to apply the reverse transform on. The goal of the color transform is to de-correlate the R, G and B values of each pixel. Color transform keeps the green (G) value as it is, transforms red (R) based on green and transforms blue (B) based on green and then based on red. The transform data. The pixel data to apply the inverse transform on. Color transform keeps the green (G) value as it is, transforms red (R) based on green and transforms blue (B) based on green and then based on red. The Vp8LMultipliers. The pixel data to transform. The number of pixels to process. Reverses the color space transform. The color transform element. The pixel data to apply the inverse transform on. This will reverse the predictor transform. The predictor transform can be used to reduce entropy by exploiting the fact that neighboring pixels are often correlated. In the predictor transform, the current pixel value is predicted from the pixels already decoded (in scan-line order) and only the residual value (actual - predicted) is encoded. The prediction mode determines the type of prediction to use. The image is divided into squares and all the pixels in a square use same prediction mode. The transform data. The pixel data to apply the inverse transform. The resulting pixel data with the reversed transformation data. Difference of each component, mod 256. Bundles multiple (1, 2, 4 or 8) pixels into a single pixel. Compute the combined Shanon's entropy for distribution {X} and {X+Y}. Shanon entropy. Fast calculation of log2(v) for integer input. Fast calculation of v * log2(v) for integer input. Splitting of distance and length codes into prefixes and extra bits. The prefixes are encoded with an entropy code while the extra bits are stored just as normal bits. Computes sampled size of 'size' when sampling using 'sampling bits'. Sum of each component, mod 256. Near-lossless image preprocessing adjusts pixel values to help compressibility with a guarantee of maximum deviation between original and resulting pixel values. Image transform methods for the lossless webp encoder. Finds the best predictor for each tile, and converts the image to residuals with respect to predictions. If nearLosslessQuality < 100, applies near lossless processing, shaving off more bits of residuals for lower qualities. Returns best predictor and updates the accumulated histogram. If maxQuantization > 1, assumes that near lossless processing will be applied, quantizing residuals to multiples of quantization levels up to maxQuantization (the actual quantization level depends on smoothness near the given pixel). Best predictor. Stores the difference between the pixel and its prediction in "output". In case of a lossy encoding, updates the source image to avoid propagating the deviation further to pixels which depend on the current pixel for their predictions. Quantize every component of the difference between the actual pixel value and its prediction to a multiple of a quantization (a power of 2, not larger than maxQuantization which is a power of 2, smaller than maxDiff). Take care if value and predict have undergone subtract green, which means that red and blue are represented as offsets from green. Quantize the difference between the actual component value and its prediction to a multiple of quantization, working modulo 256, taking care not to cross a boundary (inclusive upper limit). Converts pixels of the image to residuals with respect to predictions. If max_quantization > 1, applies near lossless processing, quantizing residuals to multiples of quantization levels up to max_quantization (the actual quantization level depends on smoothness near the given pixel). Gets or sets the common block-size. Gets the backward references. Holds bit entropy results and entropy-related functions. Not a trivial literal symbol. Initializes a new instance of the class. Gets or sets the entropy. Gets or sets the sum of the population. Gets or sets the number of non-zero elements in the population. Gets or sets the maximum value in the population. Gets or sets the index of the last non-zero in the population. Get the entropy for the distribution 'X'. Holds information for decoding a lossless webp image. Initializes a new instance of the class. The width of the image. The height of the image. Used for allocating memory for the pixel data output. Gets or sets the width of the image to decode. Gets or sets the height of the image to decode. Gets or sets the necessary VP8L metadata (like huffman tables) to decode the image. Gets or sets the transformations which needs to be reversed. Gets the pixel data. Encoder for lossless webp images. Scratch buffer to reduce allocations. The to use for buffer allocations. The global configuration. Maximum number of reference blocks the image will be segmented into. Minimum block size for backward references. A bit writer for writing lossless webp streams. The quality, that will be used to encode the image. Quality/speed trade-off (0=fast, 6=slower-better). Flag indicating whether to preserve the exact RGB values under transparent area. Otherwise, discard this invisible RGB information for better compression. Indicating whether near lossless mode should be used. The near lossless quality. The range is 0 (maximum preprocessing) to 100 (no preprocessing, the default). Initializes a new instance of the class. The memory allocator. The global configuration. The width of the input image. The height of the input image. The encoding quality. Quality/speed trade-off (0=fast, 6=slower-better). Flag indicating whether to preserve the exact RGB values under transparent area. Otherwise, discard this invisible RGB information for better compression. Indicating whether near lossless mode should be used. The near lossless quality. The range is 0 (maximum preprocessing) to 100 (no preprocessing, the default). Gets the memory for the image data as packed bgra values. Gets the memory for the encoded output image data. Gets or sets the scratch memory for bgra rows used for predictions. Gets or sets the packed image width. Gets or sets the huffman image bits. Gets or sets the bits used for the transformation. Gets or sets the transform data. Gets or sets the cache bits. If equal to 0, don't use color cache. Gets or sets a value indicating whether to use the cross color transform. Gets or sets a value indicating whether to use the subtract green transform. Gets or sets a value indicating whether to use the predictor transform. Gets or sets a value indicating whether to use color indexing transform. Gets or sets the palette size. Gets the palette. Gets the backward references. Gets the hash chain. Encodes the image as lossless webp to the specified stream. The pixel format. The to encode from. The to encode the image data to. Encodes the alpha image data using the webp lossless compression. The type of the pixel. The to encode from. The destination buffer to write the encoded alpha data to. The size of the compressed data in bytes. If the size of the data is the same as the pixel count, the compression would not yield in smaller data and is left uncompressed. Writes the image size to the bitwriter buffer. The input image width. The input image height. Writes a flag indicating if alpha channel is used and the VP8L version to the bitwriter buffer. Indicates if a alpha channel is present. Encodes the image stream using lossless webp format. The pixel type. The image to encode. Converts the pixels of the image to bgra. The type of the pixels. The image to convert. The width of the image. The height of the image. true, if the image is non opaque. Analyzes the image and decides which transforms should be used. The image as packed bgra values. The image width. The image height. Indicates if red and blue are always zero. Save the palette to the bitstream. Applies the subtract green transformation to the pixel data of the image. Analyzes the entropy of the input image to determine which transforms to use during encoding the image. The image to analyze as a bgra span. The image width. The image height. Indicates whether a palette should be used. The palette size. The transformation bits. Indicates if red and blue are always zero. The entropy mode to use. If number of colors in the image is less than or equal to MaxPaletteSize, creates a palette and returns true, else returns false. The image as packed bgra values. The image width. The image height. true, if a palette should be used. Gets the color palette. The image to get the palette from as packed bgra values. The image width. The image height. The span to store the palette into. The number of palette entries. Remap bgra values in src[] to packed palettes entries in dst[] using 'row' as a temporary buffer of size 'width'. We assume that all src[] values have a corresponding entry in the palette. Note: src[] can be the same as dst[] Sort palette in increasing order and prepare an inverse mapping array. The palette has been sorted by alpha. This function checks if the other components of the palette have a monotonic development with regards to position in the palette. If all have monotonic development, there is no benefit to re-organize them greedily. A monotonic development would be spotted in green-only situations (like lossy alpha) or gray-scale images. The palette. Number of colors in the palette. True, if the palette has no monotonous deltas. Find greedily always the closest color of the predicted color to minimize deltas in the palette. This reduces storage needs since the palette is stored with delta encoding. The palette. The number of colors in the palette. Computes a value that is related to the entropy created by the palette entry diff. First color. Second color. The color distance. Calculates the huffman image bits. Bundles multiple (1, 2, 4 or 8) pixels into a single pixel. Calculates the bits used for the transformation. Clears the backward references. The number of bits for the window size. 1M window (4M bytes) minus 120 special codes for short distances. Initializes a new instance of the class. The memory allocator. The size off the chain. Gets the offset length. The 20 most significant bits contain the offset at which the best match is found. These 20 bits are the limit defined by GetWindowSizeForHashChain (through WindowSize = 1 << 20). The lower 12 bits contain the length of the match. Gets the size of the hash chain. This is the maximum size of the hashchain that can be constructed. Typically this is the pixel count (width x height) for a given image. Calculates the hash for a pixel pair. An Span with two pixels. The hash. Returns the maximum number of hash chain lookups to do for a given compression quality. Return value in range [8, 86]. The quality. Number of hash chain lookups. Initializes a new instance of the class. The histogram to create an instance from. Initializes a new instance of the class. The backward references to initialize the histogram with. The palette code bits. Initializes a new instance of the class. The palette code bits. Gets or sets the palette code bits. Gets or sets the cached value of bit cost. Gets or sets the cached value of literal entropy costs. Gets or sets the cached value of red entropy costs. Gets or sets the cached value of blue entropy costs. Collect all the references into a histogram (without reset). The backward references. Accumulate a token 'v' into a histogram. The token to add. Indicates whether to use the distance modifier. xSize is only used when useDistanceModifier is true. Estimate how many bits the combined entropy of literals and distance approximately maps to. Estimated bits. Performs output = a + b, computing the cost C(a+b) - C(a) - C(b) while comparing to the threshold value 'costThreshold'. The score returned is Score = C(a+b) - C(a) - C(b), where C(a) + C(b) is known and fixed. Since the previous score passed is 'costThreshold', we only need to compare the partial cost against 'costThreshold + C(a) + C(b)' to possibly bail-out early. Get the symbol entropy for the distribution 'population'. Initializes a new instance of the class. Gets the streak count. index: 0=zero streak, 1=non-zero streak. Gets the streaks. [zero/non-zero][streak < 3 / streak >= 3]. Data associated with a VP8L transformation to reduce the entropy. Gets the transform type. Gets or sets the subsampling bits defining the transform window. Gets or sets the transform window X index. Gets the transform window Y index. Gets or sets the transform data. Enum for the different transform types. Transformations are reversible manipulations of the image data that can reduce the remaining symbolic entropy by modeling spatial and color correlations. Transformations can make the final compression more dense. The predictor transform can be used to reduce entropy by exploiting the fact that neighboring pixels are often correlated. The goal of the color transform is to de-correlate the R, G and B values of each pixel. Color transform keeps the green (G) value as it is, transforms red (R) based on green and transforms blue (B) based on green and then based on red. The subtract green transform subtracts green values from red and blue values of each pixel. When this transform is present, the decoder needs to add the green value to both red and blue. There is no data associated with this transform. If there are not many unique pixel values, it may be more efficient to create a color index array and replace the pixel values by the array's indices. The color indexing transform achieves this. Decoder for lossless webp images. This code is a port of libwebp, which can be found here: https://chromium.googlesource.com/webm/libwebp The lossless specification can be found here: https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification A bit reader for reading lossless webp streams. The global configuration. Used for allocating memory during processing operations. Initializes a new instance of the class. Bitreader to read from the stream. Used for allocating memory during processing operations. The configuration. Decodes the image from the stream using the bitreader. The pixel format. The pixel buffer to store the decoded data. The width of the image. The height of the image. Reads the transformations, if any are present. The width of the image. The height of the image. Vp8LDecoder where the transformations will be stored. A Webp lossless image can go through four different types of transformation before being entropy encoded. This will reverse the transformations, if any are present. The decoder holding the transformation infos. The pixel data to apply the transformation. The memory allocator is needed to allocate memory during the predictor transform. The alpha channel of a lossy webp image can be compressed using the lossless webp compression. This method will undo the compression. The alpha decoder. Decodes the next Huffman code from the bit-stream. FillBitWindow() needs to be called at minimum every second call to ReadSymbol, in order to pre-fetch enough bits. Copies pixels when a backward reference is used. Copy 'length' number of pixels (in scan-line order) from the sequence of pixels prior to them by 'dist' pixels. The pixel data. The number of so far decoded pixels. The backward reference distance prior to the current decoded pixel. The number of pixels to copy. Copies alpha values when a backward reference is used. Copy 'length' number of alpha values from the sequence of alpha values prior to them by 'dist'. The alpha values. The position of the so far decoded pixels. The backward reference distance prior to the current decoded pixel. The number of pixels to copy. Predict DC using row above and column to the left. Propagate second differences a la "True Motion". Predict rows using row above. Predict columns using column to the left. Enum for the different loop filters used. VP8 supports two types of loop filters. No filter is used. Simple loop filter. Complex loop filter. Paragraph 14.3: Implementation of the Walsh-Hadamard transform inversion. Hadamard transform Returns the weighted sum of the absolute value of transformed coefficients. w[] contains a row-major 4 by 4 symmetric matrix. Class for organizing convergence in either size or PSNR. Quantization methods. All the probabilities associated to one band. Initializes a new instance of the class. Gets the Probabilities. Initializes a new instance of the class. Initializes a new instance of the class. Gets the Costs. Holds information for decoding a lossy webp image. Initializes a new instance of the class. The frame header. The picture header. The segment header. The probabilities. Used for allocating memory for the pixel data output and the temporary buffers. Gets the frame header. Gets the picture header. Gets the filter header. Gets the segment header. Gets or sets the number of partitions minus one. Gets the per-partition boolean decoders. Gets the dequantization matrices (one set of DC/AC dequant factor per segment). Gets or sets a value indicating whether to use the skip probabilities. Gets or sets the skip probability. Gets or sets the Probabilities. Gets or sets the top intra modes values: 4 * MbWidth. Gets the left intra modes values. Gets the width in macroblock units. Gets the height in macroblock units. Gets or sets the top-left x index of the macroblock that must be in-loop filtered. Gets or sets the top-left y index of the macroblock that must be in-loop filtered. Gets or sets the last bottom-right x index of the macroblock that must be decoded. Gets or sets the last bottom-right y index of the macroblock that must be decoded. Gets or sets the current x position in macroblock units. Gets or sets the current y position in macroblock units. Gets the parsed reconstruction data. Gets the contextual macroblock info. Gets or sets the loop filter used. The purpose of the loop filter is to eliminate (or at least reduce) visually objectionable artifacts. Gets the pre-calculated per-segment filter strengths. Gets the pixel buffer where the decoded pixel data will be stored. Gets or sets filter info. Iterator structure to iterate through macroblocks, pointing to the right neighbouring data (samples, predictions, contexts, ...) Stride of the prediction plane(=4*mbw + 1). Gets or sets the current macroblock X value. Gets or sets the current macroblock Y. Gets the input samples. Gets or sets the output samples. Gets or sets the secondary buffer swapped with YuvOut. Gets the scratch buffer for prediction. Gets the left luma samples. Gets the left uv samples. Gets the left error diffusion (u/v). Gets the top luma samples at position 'X'. Gets the top u/v samples at position 'X', packed as 16 bytes. Gets the intra mode predictors (4x4 blocks). Gets the current start index of the intra mode predictors. Gets the non-zero pattern. Gets the top diffusion error. Gets 32+5 boundary samples needed by intra4x4. Gets or sets the index to the current top boundary sample. Gets or sets the current intra4x4 mode being tested. Gets the top-non-zero context. Gets the left-non-zero. leftNz[8] is independent. Gets or sets the macroblock bit-cost for luma. Gets the bit counters for coded levels. Gets or sets the macroblock bit-cost for chroma. Gets or sets the number of mb still to be processed. Gets the byte scratch buffer. Gets the short scratch buffer. Gets the int scratch buffer. Returns true if iteration is finished. True if iterator is finished. Go to next macroblock. Returns false if not finished. Restart a scan. Reset iterator position to row 'y'. The y position. Set count down. Number of iterations to go. Encoder for lossy webp images. The to use for buffer allocations. The global configuration. The quality, that will be used to encode the image. Quality/speed trade-off (0=fast, 6=slower-better). Number of entropy-analysis passes (in [1..10]). Specify the strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). A value of 0 will turn off any filtering. The spatial noise shaping. 0=off, 100=maximum. A bit writer for writing lossy webp streams. Global susceptibility. U/V quantization susceptibility. Initializes a new instance of the class. The memory allocator. The global configuration. The width of the input image. The height of the input image. The encoding quality. Quality/speed trade-off (0=fast, 6=slower-better). Number of entropy-analysis passes (in [1..10]). The filter the strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). The spatial noise shaping. 0=off, 100=maximum. If true, the alpha channel will be compressed with the lossless compression. Gets the probabilities. Gets the segment features. Gets the segment infos. Gets the macro block info's. Gets the filter header. Gets or sets the global susceptibility. Gets the width of the image. Gets the height of the image. Gets the stride of the prediction plane (=4*mb_w + 1) Gets the macroblock width. Gets the macroblock height. Gets the luma component. Gets the chroma U component. Gets the chroma U component. Gets the top luma samples. Gets the top u/v samples. U and V are packed into 16 bytes (8 U + 8 V). Gets the non-zero pattern. Gets the prediction modes: (4*mbw+1) * (4*mbh+1). Gets the diffusion error. Gets a rough limit for header bits per MB. Encodes the image to the specified stream from the . The pixel format. The to encode from. The to encode the image data to. Only collect statistics(number of skips, token usage, ...). This is used for deciding optimal probabilities. It also modifies the quantizer value if some target (size, PSNR) was specified. Same as CodeResiduals, but doesn't actually write anything. Instead, it just records the event distribution. We want to emulate jpeg-like behaviour where the expected "good" quality is around q=75. Internally, our "good" middle is around c=50. So we map accordingly using linear piece-wise function Methods for encoding a VP8 frame. Last (inclusive) level with variable cost. Value below which using skipProba is OK. Initializes a new instance of the class. Gets the probabilities for segment tree. Gets or sets the final probability of being skipped. Gets or sets a value indicating whether to use the skip probability. Gets or sets the number of skipped blocks. Gets or sets a value indicating whether CalculateLevelCosts() needs to be called. Initializes a new instance of the class. Number of segments. Gets the actual number of segments. 1 segment only = unused. Gets or sets a value indicating whether to update the segment map or not. Must be false if there's only 1 segment. Gets or sets the bit-cost for transmitting the segment map. Initializes a new instance of the class. Gets or sets the loop filter. Gets or sets the filter level. Valid values are [0..63]. Gets or sets the filter sharpness. Valid values are [0..7]. Gets or sets a value indicating whether the filtering type is: 0=complex, 1=simple. Gets or sets delta filter level for i4x4 relative to i16x16. Filter information. Initializes a new instance of the class. Initializes a new instance of the class. The filter info to create a copy from. Gets or sets the filter limit in [3..189], or 0 if no filtering. Gets or sets the inner limit in [1..63], or 0 if no filtering. Gets or sets a value indicating whether to do inner filtering. Gets or sets the high edge variance threshold in [0..2]. Vp8 frame header information. Gets or sets a value indicating whether this is a key frame. Gets or sets Vp8 profile [0..3]. Gets or sets the partition length. Size of histogram used by CollectHistogram. Initializes a new instance of the class. Gets or sets the picture width in pixels (invariable). The actual area passed to put() is stored in /> field. Gets or sets the picture height in pixels (invariable). The actual area passed to put() is stored in /> field. Gets or sets the y-position of the current macroblock. Gets or sets number of columns in the sample. Gets or sets number of rows in the sample. Gets or sets the luma component. Gets or sets the U chroma component. Gets or sets the V chroma component. Gets or sets the row stride for luma. Gets or sets the row stride for chroma. Contextual macroblock information. Gets or sets non-zero AC/DC coeffs (4bit for luma + 4bit for chroma). Gets or sets non-zero DC coeff (1bit). Data needed to reconstruct a macroblock. Initializes a new instance of the class. Gets or sets the coefficients. 384 coeffs = (16+4+4) * 4*4. Gets or sets a value indicating whether its intra4x4. Gets the modes. One 16x16 mode (#0) or sixteen 4x4 modes. Gets or sets the chroma prediction mode. Gets or sets bit-wise info about the content of each sub-4x4 blocks (in decoding order). Each of the 4x4 blocks for y/u/v is associated with a 2b code according to: code=0 -> no coefficient code=1 -> only DC code=2 -> first three coefficients are non-zero code=3 -> more than three coefficients are non-zero This allows to call specialized transform functions. Gets or sets bit-wise info about the content of each sub-4x4 blocks (in decoding order). Each of the 4x4 blocks for y/u/v is associated with a 2b code according to: code=0 -> no coefficient code=1 -> only DC code=2 -> first three coefficients are non-zero code=3 -> more than three coefficients are non-zero This allows to call specialized transform functions. Number of descaling bits for sharpening bias. The quantizer steps. The reciprocals, fixed point. The rounding bias. The value below which a coefficient is zeroed. The frequency boosters for slight sharpening. Returns the average quantizer. The average quantizer. Class to accumulate score and info during RD-optimization and mode evaluation. Distortion multiplier (equivalent of lambda). Initializes a new instance of the class. Gets or sets the distortion. Gets or sets the spectral distortion. Gets or sets the header bits. Gets or sets the rate. Gets or sets the score. Gets the quantized levels for luma-DC. Gets the quantized levels for luma-AC. Gets the quantized levels for chroma. Gets or sets the mode number for intra16 prediction. Gets the mode numbers for intra4 predictions. Gets or sets the mode number of chroma prediction. Gets or sets the Non-zero blocks. Gets the diffusion errors. Gets or sets the width of the image. Gets or sets the Height of the image. Gets or sets the horizontal scale. Gets or sets the vertical scale. Gets or sets the colorspace. 0 - YUV color space similar to the YCrCb color space defined in. 1 - Reserved for future use. Gets or sets the clamp type. 0 - Decoders are required to clamp the reconstructed pixel values to between 0 and 255 (inclusive). 1 - Reconstructed pixel values are guaranteed to be between 0 and 255; no clamping is necessary. Data for all frame-persistent probabilities. Initializes a new instance of the class. Probabilities associated to one of the contexts. Initializes a new instance of the class. Gets the probabilities. Gets or sets the U/V quantizer value. Gets or sets the dithering amplitude (0 = off, max=255). Rate-distortion optimization levels No rd-opt. Basic scoring (no trellis). Perform trellis-quant on the final decision only. Trellis-quant for every scoring (much slower). On-the-fly info about the current set of residuals. Segment features. Initializes a new instance of the class. Gets or sets a value indicating whether to update the segment map or not. Gets or sets a value indicating whether to use delta values for quantizer and filter. If this value is false, absolute values are used. Gets quantization changes. Gets the filter strength for segments. Gets the quantization matrix y1. Gets the quantization matrix y2. Gets the quantization matrix uv. Gets or sets the quant-susceptibility, range [-127,127]. Zero is neutral. Lower values indicate a lower risk of blurriness. Gets or sets the filter-susceptibility, range [0,255]. Gets or sets the final segment quantizer. Gets or sets the final in-loop filtering strength. Gets or sets the max edge delta (for filtering strength). Gets or sets the penalty for using Intra4. Gets or sets the minimum distortion required to trigger filtering record. Initializes a new instance of the class. Initializes a new instance of the class. Decoder for lossy webp images. This code is a port of libwebp, which can be found here: https://chromium.googlesource.com/webm/libwebp The lossy specification can be found here: https://tools.ietf.org/html/rfc6386 A bit reader for reading lossy webp streams. Used for allocating memory during processing operations. The global configuration. Scratch buffer to reduce allocations. Another scratch buffer to reduce allocations. Initializes a new instance of the class. Bitreader to read from the stream. Used for allocating memory during processing operations. The configuration. Fixed-point precision for RGB->YUV. Converts the RGB values of the image to YUV. The pixel type of the image. The image to convert. The global configuration. The memory allocator. Span to store the luma component of the image. Span to store the u component of the image. Span to store the v component of the image. true, if the image contains alpha data. Converts a rgba pixel row to Y. The row span to convert. The destination span for y. The width. Converts a rgb row of pixels to UV. The RGB pixel row. The destination span for u. The destination span for v. The width. No compression. Compressed using the Webp lossless format. Enum for the different alpha filter types. No filtering. Horizontal filter. Vertical filter. Gradient filter. Enumerates the available bits per pixel the webp image uses. 24 bits per pixel. Each pixel consists of 3 bytes. 32 bits per pixel. Each pixel consists of 4 bytes (an alpha channel is present). Contains a list of different webp chunk types. See Webp Container Specification for more details: https://developers.google.com/speed/webp/docs/riff_container Header signaling the use of the VP8 format. Header signaling the image uses lossless encoding. Header for a extended-VP8 chunk. Chunk contains information about the alpha channel. Chunk which contains a color profile. Chunk which contains EXIF metadata about the image. Chunk contains XMP metadata about the image. For an animated image, this chunk contains the global parameters of the animation. For animated images, this chunk contains information about a single frame. If the Animation flag is not set, then this chunk SHOULD NOT be present. Utility methods for lossy and lossless webp format. Checks if the pixel row is not opaque. The row to check. Returns true if alpha has non-0xff values. Registers the image encoders, decoders and mime type detectors for the webp format. Constants used for encoding and decoding VP8 and VP8L bitstreams. The list of file extensions that equate to Webp. The list of mimetypes that equate to a jpeg. Signature which identifies a VP8 header. Signature byte which identifies a VP8L header. Signature bytes identifying a lossy image. Signature bytes identifying a lossless image. Signature bytes identifying a VP8X header. The header bytes identifying RIFF file. The header bytes identifying a Webp. 3 bits reserved for version. Bits for width and height infos of a VPL8 image. Size of the frame header within VP8 data. Size of a VP8X chunk in bytes. Size of a chunk header. Size of the RIFF header ("RIFFnnnnWEBP"). Size of a chunk tag (e.g. "VP8L"). The Vp8L version 0. Maximum number of histogram images (sub-blocks). Minimum number of Huffman bits. Maximum number of Huffman bits. The maximum number of colors for a paletted images. Maximum number of color cache bits is 10. The maximum number of allowed transforms in a VP8L bitstream. Maximum value of transformBits in VP8LEncoder. The bit to be written when next data to be read is a transform. The maximum allowed width or height of a webp image. 8b of precision for susceptibilities. Scaling factor for alpha. Neutral value for susceptibility. Lowest usable value for susceptibility. Higher meaningful value for susceptibility. Scaling constant between the sns (Spatial Noise Shaping) value and the QP power-law modulation. Must be strictly less than 1. Very small filter-strength values have close to no visual effect. So we can save a little decoding-CPU by turning filtering off for these. Max size of mode partition. Distortion multiplier (equivalent of lambda). How many extra lines are needed on the MB boundary for caching, given a filtering level. Simple filter(1): up to 2 luma samples are read and 1 is written. Complex filter(2): up to 4 luma samples are read and 3 are written. Same for U/V, so it's 8 samples total (because of the 2x upsampling). Image decoder for generating an image out of a webp stream. Gets or sets a value indicating whether the metadata should be ignored when the image is being decoded. Performs the webp decoding operation. Reusable buffer. Used for allocating memory during processing operations. The stream to decode from. The webp specific metadata. Information about the webp image. Initializes a new instance of the class. The configuration. The options. Gets a value indicating whether the metadata should be ignored when the image is being decoded. Gets the decoded by this decoder instance. Gets the dimensions of the image. Reads and skips over the image header. The file size in bytes. Reads information present in the image header, about the image content and how to decode the image. Information about the webp image. Reads an the extended webp file header. An extended file header consists of: - A 'VP8X' chunk with information about features used in the file. - An optional 'ICCP' chunk with color profile. - An optional 'XMP' chunk with metadata. - An optional 'ANIM' chunk with animation control data. - An optional 'ALPH' chunk with alpha channel data. After the image header, image data will follow. After that optional image metadata chunks (EXIF and XMP) can follow. Information about this webp image. Reads the header of a lossy webp image. Webp features. Information about this webp image. Reads the header of a lossless webp image. Webp image features. Information about this image. Parses optional VP8X chunks, which can be ICCP, XMP, ANIM or ALPH chunks. The chunk type. The webp image features. Parses optional metadata chunks. There SHOULD be at most one chunk of each type ('EXIF' and 'XMP '). If there are more such chunks, readers MAY ignore all except the first one. Also, a file may possibly contain both 'EXIF' and 'XMP ' chunks. The webp features. Identifies the chunk type from the chunk. Thrown if the input stream is not valid. Reads the chunk size. If Chunk Size is odd, a single padding byte will be added to the payload, so the chunk size will be increased by 1 in those cases. The chunk size in bytes. Determines if the chunk type is an optional VP8X chunk. The chunk type. True, if its an optional chunk type. Image encoder for writing an image to a stream in the Webp format. Image encoder for writing an image to a stream in the Webp format. Used for allocating memory during processing operations. Indicating whether the alpha plane should be compressed with Webp lossless format. Defaults to true. Compression quality. Between 0 and 100. Quality/speed trade-off (0=fast, 6=slower-better). The number of entropy-analysis passes (in [1..10]). Spatial Noise Shaping. 0=off, 100=maximum. The filter the strength of the deblocking filter, between 0 (no filtering) and 100 (maximum filtering). Flag indicating whether to preserve the exact RGB values under transparent area. Otherwise, discard this invisible RGB information for better compression. Indicating whether near lossless mode should be used. The near lossless quality. The range is 0 (maximum preprocessing) to 100 (no preprocessing, the default). Indicating what file format compression should be used. Defaults to lossy. The global configuration. Initializes a new instance of the class. The encoder options. The memory manager. Encodes the image as webp to the specified stream. The pixel format. The to encode from. The to encode the image data to. The token to monitor for cancellation requests. Quality/speed trade-off for the encoding process (0=fast, 6=slower-better). Fastest, but quality compromise. Equivalent to . Fastest, but quality compromise. Level1. Level 2. Level 3. Level 4. Equivalent to . BestQuality trade off between speed and quality. Level 5. Slowest option, but best quality. Equivalent to . Slowest option, but best quality. Image features of a VP8X image. Gets or sets a value indicating whether this image has an ICC Profile. Gets or sets a value indicating whether this image has an alpha channel. Gets or sets the alpha data, if an ALPH chunk is present. Gets or sets the alpha chunk header. Gets or sets a value indicating whether this image has an EXIF Profile. Gets or sets a value indicating whether this image has XMP Metadata. Gets or sets a value indicating whether this image is an animation. Info about the webp file format used. The lossless webp format. The lossy webp format. Registers the image encoders, decoders and mime type detectors for the Webp format Gets the current instance. Detects Webp file headers. Checks, if the header starts with a valid RIFF FourCC. The header bytes. True, if its a valid RIFF FourCC. Checks if 'WEBP' is present in the header. The header bytes. True, if its a webp file. Gets or sets the bitmap width in pixels. Gets or sets the bitmap height in pixels. Gets or sets the bits per pixel. Gets or sets a value indicating whether this image uses lossless compression. Gets or sets additional features present in a VP8X image. Gets or sets the VP8 profile / version. Valid values are between 0 and 3. Default value will be the invalid value -1. Gets or sets the VP8 frame header. Gets or sets the VP8L bitreader. Will be null, if its not a lossless image. Gets or sets the VP8 bitreader. Will be null, if its not a lossy image. Lookup table for small values of log2(int). Provides Webp specific metadata information for the image. Initializes a new instance of the class. Initializes a new instance of the class. The metadata to create an instance from. Gets or sets the webp file format used. Either lossless or lossy. Cold path optimization for throwing -s The error message for the exception. Cold path optimization for throwing -s The error message for the exception. Cold path optimization for throwing -s The error message for the exception. Enum indicating how the transparency should be handled on encoding. Discard the transparency information for better compression. The transparency will be kept as is. Extension methods for the type. Extension methods for the type. Extension methods for the type. Extension methods for the type. Extension methods for the type. Extension methods for the type. Extension methods for the type. Extension methods for the type. Gets the bmp format specific metadata for the image. The metadata this method extends. The . Gets the gif format specific metadata for the image. The metadata this method extends. The . Gets the gif format specific metadata for the image frame. The metadata this method extends. The . Gets the jpeg format specific metadata for the image. The metadata this method extends. The . Gets the pbm format specific metadata for the image. The metadata this method extends. The . Gets the png format specific metadata for the image. The metadata this method extends. The . Gets the tga format specific metadata for the image. The metadata this method extends. The . Gets the tiff format specific metadata for the image. The metadata this method extends. The . Gets the tiff format specific metadata for the image frame. The metadata this method extends. The . Gets the webp format specific metadata for the image. The metadata this method extends. The . Extension methods for the type. Extension methods for the type. Contains internal extensions for Saves the image to the given stream with the Bmp format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Bmp format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Bmp format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Bmp format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Bmp format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Bmp format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Bmp format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Bmp format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Bmp format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Gif format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Gif format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Gif format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Gif format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Gif format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Gif format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Gif format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Gif format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Gif format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Jpeg format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Jpeg format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Jpeg format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Jpeg format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Jpeg format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Jpeg format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Jpeg format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Jpeg format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Jpeg format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Pbm format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Pbm format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Pbm format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Pbm format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Pbm format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Pbm format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Pbm format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Pbm format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Pbm format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Png format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Png format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Png format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Png format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Png format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Png format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Png format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Png format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Png format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Tga format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Tga format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tga format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tga format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Tga format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tga format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Tga format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Tga format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Tga format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Webp format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Webp format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Webp format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Webp format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Webp format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Webp format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Webp format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Webp format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Webp format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Tiff format. The image this method extends. The file path to save the image to. Thrown if the path is null. Saves the image to the given stream with the Tiff format. The image this method extends. The file path to save the image to. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tiff format. The image this method extends. The file path to save the image to. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tiff format. The image this method extends. The file path to save the image to. The encoder to save the image with. Thrown if the path is null. Saves the image to the given stream with the Tiff format. The image this method extends. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the path is null. A representing the asynchronous operation. Saves the image to the given stream with the Tiff format. The image this method extends. The stream to save the image to. Thrown if the stream is null. Saves the image to the given stream with the Tiff format. The image this method extends. The stream to save the image to. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Saves the image to the given stream with the Tiff format. The image this method extends. The stream to save the image to. The encoder to save the image with. Thrown if the stream is null. Saves the image to the given stream with the Tiff format. The image this method extends. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream is null. A representing the asynchronous operation. Writes the image to the given file path using an encoder detected from the path. The source image. The file path to save the image to. The path is null. No encoder available for provided path. Writes the image to the given file path using an encoder detected from the path. The source image. The file path to save the image to. The token to monitor for cancellation requests. The path is null. No encoder available for provided path. A representing the asynchronous operation. Writes the image to the given file path using the given image encoder. The source image. The file path to save the image to. The encoder to save the image with. The path is null. The encoder is null. Writes the image to the given file path using the given image encoder. The source image. The file path to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. The path is null. The encoder is null. A representing the asynchronous operation. Writes the image to the given stream using the given image format. The source image. The stream to save the image to. The format to save the image in. The stream is null. The format is null. The stream is not writable. No encoder available for provided format. Writes the image to the given stream using the given image format. The source image. The stream to save the image to. The format to save the image in. The token to monitor for cancellation requests. The stream is null. The format is null. The stream is not writable. No encoder available for provided format. A representing the asynchronous operation. Returns a Base64 encoded string from the given image. The result is prepended with a Data URI For example: The source image The format. The format is null. The Locks the image providing access to the pixels. It is imperative that the accessor is correctly disposed off after use. The type of the pixel. The image. The Utility class for common geometric functions. Converts a degree (360-periodic) angle to a radian (2*Pi-periodic) angle. The angle in degrees. The representing the degree as radians. Converts a radian (2*Pi-periodic) angle to a degree (360-periodic) angle. The angle in radians. The representing the degree as radians. Adds extensions that allow the processing of images to the type. Sets the default options against the image processing context. The image processing context to store default against. The action to update instance of the default options used. The passed in to allow chaining. Sets the default options against the configuration. The configuration to store default against. The default options to use. Sets the default options against the image processing context. The image processing context to store default against. The default options to use. The passed in to allow chaining. Sets the default options against the configuration. The configuration to store default against. The default options to use. Gets the default options against the image processing context. The image processing context to retrieve defaults from. The globaly configued default options. Gets the default options against the image processing context. The configuration to retrieve defaults from. The globaly configued default options. Options for influencing the drawing functions. Initializes a new instance of the class. Gets or sets a value indicating whether antialiasing should be applied. Defaults to true. Gets or sets a value indicating the number of subpixels to use while rendering with antialiasing enabled. Defaults to 16. Gets or sets a value between indicating the blending percentage to apply to the drawing operation. Range 0..1; Defaults to 1. Gets or sets a value indicating the color blending mode to apply to the drawing operation. Defaults to . Gets or sets a value indicating the alpha composition mode to apply to the drawing operation Defaults to . Represents an interface that can register image encoders, decoders and image format detectors. Called when loaded into a configuration object so the module can register items into the configuration. The configuration that will retain the encoders, decodes and mime type detectors. A generic interface for a deeply cloneable type. The type of object to clone. Creates a new that is a deep copy of the current instance. The . An interface for objects that can be cloned. This creates a deep copy of the object. Creates a new object that is a deep copy of the current instance. The . Encapsulates the properties and methods that describe an image. Encapsulates properties that describe basic image information including dimensions, pixel type information and additional metadata. Gets information about the image pixels. Gets the width. Gets the height. Gets the metadata of the image. Encapsulates an image, which consists of the pixel data for a graphics image and its attributes. For the non-generic type, the pixel type is only known at runtime. is always implemented by a pixel-specific instance. Adds static methods allowing the decoding of new images. Adds static methods allowing the creation of new image from a byte array. Adds static methods allowing the creation of new image from a given file. Adds static methods allowing the creation of new image from a given stream. Adds static methods allowing the creation of new image from raw pixel data. Adds static methods allowing wrapping an existing memory area as an image. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The . The . Initializes a new instance of the class. Gets the implementing the public property. Gets the frames of the image as (non-generic) . Saves the image to the given stream using the given image encoder. The stream to save the image to. The encoder to save the image with. Thrown if the stream or encoder is null. Saves the image to the given stream using the given image encoder. The stream to save the image to. The encoder to save the image with. The token to monitor for cancellation requests. Thrown if the stream or encoder is null. A representing the asynchronous operation. Returns a copy of the image in the given pixel format. The pixel format. The Returns a copy of the image in the given pixel format. The pixel format. The configuration providing initialization code which allows extending the library. The . Update the size of the image after mutation. The . Disposes the object and frees resources for the Garbage Collector. Whether to dispose of managed and unmanaged objects. Throws if the image is disposed. Accepts a . Implemented by invoking with the pixel type of the image. The visitor. Accepts a . Implemented by invoking with the pixel type of the image. The visitor. The token to monitor for cancellation requests. Creates an instance backed by an uninitialized memory buffer. This is an optimized creation method intended to be used by decoders. The image might be filled with memory garbage. The pixel type The The width of the image The height of the image The The result By reading the header on the provided stream this calculates the images format. The image stream to read the header from. The configuration. The mime type or null if none found. By reading the header on the provided stream this calculates the images format. The image stream to read the header from. The configuration. The IImageFormat. The image format or null if none found. Decodes the image stream to the current image. The stream. the configuration. The token to monitor for cancellation requests. The pixel format. A new . Reads the raw image information from the specified stream. The stream. the configuration. The token to monitor for cancellation requests. The or null if a suitable info detector is not found. By reading the header on the provided byte array this calculates the images format. The byte array containing encoded image data to read the header from. The data is null. The format or null if none found. By reading the header on the provided byte array this calculates the images format. The configuration. The byte array containing encoded image data to read the header from. The configuration is null. The data is null. The mime type or null if none found. Reads the raw image information from the specified stream without fully decoding it. The byte array containing encoded image data to read the header from. The data is null. The data is not readable. The or null if suitable info detector not found. Reads the raw image information from the specified stream without fully decoding it. The byte array containing encoded image data to read the header from. The format type of the decoded image. The data is null. The data is not readable. The or null if suitable info detector not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The byte array containing encoded image data to read the header from. The format type of the decoded image. The configuration is null. The data is null. The data is not readable. The or null if suitable info detector is not found. Load a new instance of from the given encoded byte array. The byte array containing image data. The configuration is null. The data is null. A new . Load a new instance of from the given encoded byte array. The byte array containing encoded image data. The pixel format. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Load a new instance of from the given encoded byte array. The byte array containing image data. The mime type of the decoded image. The pixel format. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Load a new instance of from the given encoded byte array. The configuration options. The byte array containing encoded image data. The pixel format. The configuration is null. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Load a new instance of from the given encoded byte array. The configuration options. The byte array containing encoded image data. The of the decoded image. The pixel format. The configuration is null. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Load a new instance of from the given encoded byte array. The byte array containing encoded image data. The decoder. The pixel format. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Load a new instance of from the given encoded byte array. The Configuration. The byte array containing encoded image data. The decoder. The pixel format. The configuration is null. The data is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . By reading the header on the provided byte span this calculates the images format. The byte span containing encoded image data to read the header from. The format or null if none found. By reading the header on the provided byte span this calculates the images format. The configuration. The byte span containing encoded image data to read the header from. The configuration is null. The mime type or null if none found. Load a new instance of from the given encoded byte span. The byte span containing encoded image data. The pixel format. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte span. The byte span containing image data. The mime type of the decoded image. The pixel format. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte span. The byte span containing encoded image data. The decoder. The pixel format. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte span. The configuration options. The byte span containing encoded image data. The pixel format. The configuration is null. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte span. The Configuration. The byte span containing image data. The decoder. The pixel format. The configuration is null. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte span. The configuration options. The byte span containing image data. The of the decoded image. The pixel format. The configuration is null. Image format not recognised. Image contains invalid content. Image format is not supported. A new . Load a new instance of from the given encoded byte array. The byte array containing image data. The detected format. The configuration is null. The data is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte array. The byte array containing encoded image data. The decoder. The data is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte array. The configuration for the decoder. The byte array containing encoded image data. The configuration is null. The data is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte array. The configuration for the decoder. The byte array containing image data. The decoder. The configuration is null. The data is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte array. The configuration for the decoder. The byte array containing image data. The mime type of the decoded image. The configuration is null. The data is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte span. The byte span containing image data. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte span. The byte span containing image data. The decoder. The data is null. The decoder is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Load a new instance of from the given encoded byte array. The byte span containing image data. The detected format. The decoder is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . Decodes a new instance of from the given encoded byte span. The configuration options. The byte span containing image data. The . Load a new instance of from the given encoded byte span. The Configuration. The byte span containing image data. The decoder. The configuration is null. The decoder is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The . Load a new instance of from the given encoded byte span. The configuration options. The byte span containing image data. The of the decoded image.> The configuration is null. Image format not recognised. Image contains invalid content. Image format is not supported. The . By reading the header on the provided file this calculates the images mime type. The image file to open and to read the header from. The mime type or null if none found. By reading the header on the provided file this calculates the images mime type. The configuration. The image file to open and to read the header from. The configuration is null. The mime type or null if none found. Reads the raw image information from the specified stream without fully decoding it. The image file to open and to read the header from. The or null if suitable info detector not found. Reads the raw image information from the specified stream without fully decoding it. The image file to open and to read the header from. The format type of the decoded image. The or null if suitable info detector not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image file to open and to read the header from. The format type of the decoded image. The configuration is null. The or null if suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The image file to open and to read the header from. The token to monitor for cancellation requests. The configuration is null. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image file to open and to read the header from. The token to monitor for cancellation requests. The configuration is null. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The image file to open and to read the header from. The token to monitor for cancellation requests. The configuration is null. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image file to open and to read the header from. The token to monitor for cancellation requests. The configuration is null. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Create a new instance of the class from the given file. The file path to the image. Thrown if the stream is not readable nor seekable. The . Create a new instance of the class from the given file. The file path to the image. The mime type of the decoded image. Thrown if the stream is not readable nor seekable. A new . Create a new instance of the class from the given file. The configuration for the decoder. The file path to the image. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. The . Create a new instance of the class from the given file. The configuration for the decoder. The file path to the image. The token to monitor for cancellation requests. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given file. The Configuration. The file path to the image. The decoder. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. The . Create a new instance of the class from the given file. The file path to the image. The token to monitor for cancellation requests. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given file. The file path to the image. The decoder. The token to monitor for cancellation requests. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given file. The file path to the image. The decoder. The token to monitor for cancellation requests. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given file. The Configuration. The file path to the image. The decoder. The token to monitor for cancellation requests. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given file. The Configuration. The file path to the image. The decoder. The token to monitor for cancellation requests. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given file. The file path to the image. The token to monitor for cancellation requests. The configuration is null. The path is null. Image format not recognised. Image contains invalid content. Image format is not supported. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given file. The configuration for the decoder. The file path to the image. The token to monitor for cancellation requests. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given file. The file path to the image. The decoder. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. The . Create a new instance of the class from the given file. The file path to the image. The path is null. Image format not recognised. Image contains invalid content. Image format is not supported. The pixel format. A new . Create a new instance of the class from the given file. The file path to the image. The mime type of the decoded image. The path is null. Image format not recognised. Image contains invalid content. Image format is not supported. The pixel format. A new . Create a new instance of the class from the given file. The configuration options. The file path to the image. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given file. The configuration options. The file path to the image. The mime type of the decoded image. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given file. The pixel type is selected by the decoder. The configuration options. The file path to the image. The mime type of the decoded image. The configuration is null. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. A new . Create a new instance of the class from the given file. The file path to the image. The decoder. The path is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given file. The Configuration. The file path to the image. The decoder. The configuration is null. The path is null. The decoder is null. Image format not recognised. Image format is not supported. Image contains invalid content. The pixel format. A new . By reading the header on the provided stream this calculates the images format type. The image stream to read the header from. The stream is null. The stream is not readable. The format type or null if none found. By reading the header on the provided stream this calculates the images format type. The configuration. The image stream to read the header from. The configuration is null. The stream is null. The stream is not readable. The format type or null if none found. By reading the header on the provided stream this calculates the images format type. The image stream to read the header from. The token to monitor for cancellation requests. The stream is null. The stream is not readable. A representing the asynchronous operation or null if none is found. By reading the header on the provided stream this calculates the images format type. The configuration. The image stream to read the header from. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable. A representing the asynchronous operation. Reads the raw image information from the specified stream without fully decoding it. The image stream to read the header from. The stream is null. The stream is not readable. Image contains invalid content. The or null if a suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The image stream to read the header from. The token to monitor for cancellation requests. The stream is null. The stream is not readable. Image contains invalid content. A representing the asynchronous operation or null if a suitable detector is not found. Reads the raw image information from the specified stream without fully decoding it. The image stream to read the header from. The format type of the decoded image. The stream is null. The stream is not readable. Image contains invalid content. The or null if a suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image stream to read the information from. The configuration is null. The stream is null. The stream is not readable. Image contains invalid content. The or null if a suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image stream to read the information from. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable. Image contains invalid content. A representing the asynchronous operation or null if a suitable detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image stream to read the information from. The format type of the decoded image. The configuration is null. The stream is null. The stream is not readable. Image contains invalid content. The or null if a suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The image stream to read the information from. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable. Image contains invalid content. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Reads the raw image information from the specified stream without fully decoding it. The configuration. The image stream to read the information from. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable. Image contains invalid content. The representing the asynchronous operation with the parameter type property set to null if suitable info detector is not found. Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The format type of the decoded image. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The . Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The token to monitor for cancellation requests. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The . Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The token to monitor for cancellation requests. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The decoder. The stream is null. The decoder is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The . Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The stream containing image information. The decoder. The token to monitor for cancellation requests. The stream is null. The decoder is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The configuration for the decoder. The stream containing image information. The decoder. The configuration is null. The stream is null. The decoder is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A new . Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The configuration for the decoder. The stream containing image information. The decoder. The token to monitor for cancellation requests. The configuration is null. The stream is null. The decoder is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Decode a new instance of the class from the given stream. The configuration for the decoder. The stream containing image information. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A new . Decode a new instance of the class from the given stream. The configuration for the decoder. The stream containing image information. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given stream. The stream containing image information. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given stream. The stream containing image information. The token to monitor for cancellation requests. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The stream containing image information. The format type of the decoded image. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given stream. The stream containing image information. The token to monitor for cancellation requests. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The stream containing image information. The decoder. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given stream. The stream containing image information. The decoder. The token to monitor for cancellation requests. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The Configuration. The stream containing image information. The decoder. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given stream. The Configuration. The stream containing image information. The decoder. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The configuration options. The stream containing image information. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A new . Create a new instance of the class from the given stream. The configuration options. The stream containing image information. The format type of the decoded image. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The configuration options. The stream containing image information. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A representing the asynchronous operation. Create a new instance of the class from the given stream. The configuration options. The stream containing image information. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Create a new instance of the class from the given stream. The configuration options. The stream containing image information. The token to monitor for cancellation requests. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. The pixel format. A representing the asynchronous operation. Decode a new instance of the class from the given stream. The pixel format is selected by the decoder. The configuration options. The stream containing image information. The format type of the decoded image. The configuration is null. The stream is null. The stream is not readable or the image format is not supported. Image format not recognised. Image contains invalid content. A new . Performs the given action against the stream ensuring that it is seekable. The type of object returned from the action. The configuration. The input stream. The action to perform. The . Performs the given action asynchronously against the stream ensuring that it is seekable. The type of object returned from the action. The configuration. The input stream. The action to perform. The cancellation token. The . Create a new instance of the class from the raw data. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The data length is incorrect. A new . Create a new instance of the class from the raw data. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The data length is incorrect. A new . Create a new instance of the class from the given byte array in format. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The data length is incorrect. A new . Create a new instance of the class from the given byte array in format. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The data length is incorrect. A new . Create a new instance of the class from the given byte array in format. The configuration for the decoder. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The configuration is null. The data length is incorrect. A new . Create a new instance of the class from the given byte array in format. The configuration for the decoder. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. The configuration is null. The data length is incorrect. A new . Create a new instance of the class from the raw data. The configuration for the decoder. The Span containing the image Pixel data. The width of the final image. The height of the final image. The pixel format. The configuration is null. The data length is incorrect. A new . Create a new instance of the class from the raw data. The configuration for the decoder. The Span containing the image Pixel data. The width of the final image. The height of the final image. The configuration is null. The data length is incorrect. The pixel format. A new . Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type The The pixel memory. The width of the memory image. The height of the memory image. The . The configuration is null. The metadata is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type The The pixel memory. The width of the memory image. The height of the memory image. The configuration is null. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type. The pixel memory. The width of the memory image. The height of the memory image. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type The The that is being transferred to the image The width of the memory image. The height of the memory image. The The configuration is null. The metadata is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type. The The that is being transferred to the image. The width of the memory image. The height of the memory image. The configuration is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type The that is being transferred to the image. The width of the memory image. The height of the memory image. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type The The byte memory representing the pixel data. The width of the memory image. The height of the memory image. The . The configuration is null. The metadata is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type The The byte memory representing the pixel data. The width of the memory image. The height of the memory image. The configuration is null. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: using this method does not transfer the ownership of the underlying buffer of the input to the new instance. This means that consumers of this method must ensure that the input buffer is either self-contained, (for example, a instance wrapping a new array that was created), or that the owning object is not disposed until the returned is disposed. If the input instance is one retrieved from an instance rented from a memory pool (such as ), and that owning instance is disposed while the image is still in use, this will lead to undefined behavior and possibly runtime crashes (as the same buffer might then be modified by other consumers while the returned image is still working on it). Make sure to control the lifetime of the input buffers appropriately. The pixel type. The byte memory representing the pixel data. The width of the memory image. The height of the memory image. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type The The that is being transferred to the image The width of the memory image. The height of the memory image. The The configuration is null. The metadata is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type. The The that is being transferred to the image. The width of the memory image. The height of the memory image. The configuration is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels, allowing to view/manipulate it as an instance. The ownership of the is being transferred to the new instance, meaning that the caller is not allowed to dispose . It will be disposed together with the result image. The pixel type The that is being transferred to the image. The width of the memory image. The height of the memory image. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: this method relies on callers to carefully manage the target memory area being referenced by the pointer and that the lifetime of such a memory area is at least equal to that of the returned instance. For example, if the input pointer references an unmanaged memory area, callers must ensure that the memory area is not freed as long as the returned is in use and not disposed. The same applies if the input memory area points to a pinned managed object, as callers must ensure that objects will remain pinned as long as the instance is in use. Failing to do so constitutes undefined behavior and will likely lead to memory corruption and runtime crashes. Note also that if you have a or an array (which can be cast to ) of either or values, it is highly recommended to use one of the other available overloads of this method instead (such as or , to make the resulting code less error prone and avoid having to pin the underlying memory buffer in use. This method is primarily meant to be used when doing interop or working with buffers that are located in unmanaged memory. The pixel type The The pointer to the target memory buffer to wrap. The width of the memory image. The height of the memory image. The . The configuration is null. The metadata is null. An instance Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: this method relies on callers to carefully manage the target memory area being referenced by the pointer and that the lifetime of such a memory area is at least equal to that of the returned instance. For example, if the input pointer references an unmanaged memory area, callers must ensure that the memory area is not freed as long as the returned is in use and not disposed. The same applies if the input memory area points to a pinned managed object, as callers must ensure that objects will remain pinned as long as the instance is in use. Failing to do so constitutes undefined behavior and will likely lead to memory corruption and runtime crashes. Note also that if you have a or an array (which can be cast to ) of either or values, it is highly recommended to use one of the other available overloads of this method instead (such as or , to make the resulting code less error prone and avoid having to pin the underlying memory buffer in use. This method is primarily meant to be used when doing interop or working with buffers that are located in unmanaged memory. The pixel type The The pointer to the target memory buffer to wrap. The width of the memory image. The height of the memory image. The configuration is null. An instance. Wraps an existing contiguous memory area of at least 'width' x 'height' pixels allowing viewing/manipulation as an instance. Please note: this method relies on callers to carefully manage the target memory area being referenced by the pointer and that the lifetime of such a memory area is at least equal to that of the returned instance. For example, if the input pointer references an unmanaged memory area, callers must ensure that the memory area is not freed as long as the returned is in use and not disposed. The same applies if the input memory area points to a pinned managed object, as callers must ensure that objects will remain pinned as long as the instance is in use. Failing to do so constitutes undefined behavior and will likely lead to memory corruption and runtime crashes. Note also that if you have a or an array (which can be cast to ) of either or values, it is highly recommended to use one of the other available overloads of this method instead (such as or , to make the resulting code less error prone and avoid having to pin the underlying memory buffer in use. This method is primarily meant to be used when doing interop or working with buffers that are located in unmanaged memory. The pixel type. The pointer to the target memory buffer to wrap. The width of the memory image. The height of the memory image. An instance. Represents a pixel-agnostic image frame containing all pixel data and . In case of animated formats like gif, it contains the single frame in a animation. In all other cases it is the only frame of the image. Contains methods for loading raw pixel data. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The frame width. The frame height. The . Gets the width. Gets the height. Gets the metadata of the frame. Gets the size of the frame. The Gets the bounds of the frame. The Disposes the object and frees resources for the Garbage Collector. Whether to dispose of managed and unmanaged objects. Updates the size of the image frame. Create a new instance of the class from the given byte array in format. The configuration which allows altering default behaviour or extending the library. The byte array containing image data. The width of the final image. The height of the final image. The pixel format. A new . Create a new instance of the class from the raw data. The configuration which allows altering default behaviour or extending the library. The Span containing the image Pixel data. The width of the final image. The height of the final image. The pixel format. A new . Encapsulates a pixel-agnostic collection of instances that make up an . Gets the number of frames. Gets the root frame. Gets the root frame. (Implements .) Gets the at the specified index. The . The index. The at the specified index. Determines the index of a specific in the . The to locate in the . The index of item if found in the list; otherwise, -1. Clones and inserts the into the at the specified . The zero-based index to insert the frame at. The to clone and insert into the . Frame must have the same dimensions as the image. The cloned . Clones the frame and appends the clone to the end of the collection. The raw pixel data to generate the from. The cloned . Removes the frame at the specified index and frees all freeable resources associated with it. The zero-based index of the frame to remove. Cannot remove last frame. Determines whether the contains the . The frame. true if the contains the specified frame; otherwise, false. Moves an from to . The zero-based index of the frame to move. The index to move the frame to. Removes the frame at the specified index and creates a new image with only the removed frame with the same metadata as the original image. The zero-based index of the frame to export. Cannot remove last frame. The new with the specified frame. Creates an with only the frame at the specified index with the same metadata as the original image. The zero-based index of the frame to clone. The new with the specified frame. Creates a new and appends it to the end of the collection. The new . Creates a new and appends it to the end of the collection. The background color to initialize the pixels with. The new . Throws if the image frame is disposed. Disposes the object and frees resources for the Garbage Collector. Whether to dispose of managed and unmanaged objects. Implements . The enumerator. Implements the getter of the indexer. The index. The frame. Implements . The index. The frame. The new frame. Implements . The frame. The new frame. Implements . The index. The new image. Implements . The index. The new image. Implements . The new frame. Implements . The background color. The new frame. Encapsulates a pixel-specific collection of instances that make up an . The type of the pixel. Gets the number of frames. Gets the root frame. Gets root frame accessor in unsafe manner without any checks. This property is most likely to be called from for indexing pixels. already checks if it was disposed before querying for root frame. Gets the at the specified index. The . The index. The at the specified index. Determines the index of a specific in the . The to locate in the . The index of item if found in the list; otherwise, -1. Clones and inserts the into the at the specified . The zero-based index to insert the frame at. The to clone and insert into the . Frame must have the same dimensions as the image. The cloned . Clones the frame and appends the clone to the end of the collection. The raw pixel data to generate the from. The cloned . Creates a new frame from the pixel data with the same dimensions as the other frames and inserts the new frame at the end of the collection. The raw pixel data to generate the from. The new . Creates a new frame from the pixel data with the same dimensions as the other frames and inserts the new frame at the end of the collection. The raw pixel data to generate the from. The new . Removes the frame at the specified index and frees all freeable resources associated with it. The zero-based index of the frame to remove. Cannot remove last frame. Determines whether the contains the . The frame. true if the contains the specified frame; otherwise, false. Moves an from to . The zero-based index of the frame to move. The index to move the frame to. Removes the frame at the specified index and creates a new image with only the removed frame with the same metadata as the original image. The zero-based index of the frame to export. Cannot remove last frame. The new with the specified frame. Creates an with only the frame at the specified index with the same metadata as the original image. The zero-based index of the frame to clone. The new with the specified frame. Creates a new and appends it to the end of the collection. The new . Creates a new and appends it to the end of the collection. The background color to initialize the pixels with. The new . Represents a pixel-specific image frame containing all pixel data and . In case of animated formats like gif, it contains the single frame in a animation. In all other cases it is the only frame of the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The width of the image in pixels. The height of the image in pixels. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The of the frame. The metadata. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The width of the image in pixels. The height of the image in pixels. The metadata. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The width of the image in pixels. The height of the image in pixels. The color to clear the image with. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The width of the image in pixels. The height of the image in pixels. The color to clear the image with. The metadata. Initializes a new instance of the class wrapping an existing buffer. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. The memory source. Initializes a new instance of the class wrapping an existing buffer. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. The memory source. The metadata. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source. Gets or sets the pixel at the specified position. The x-coordinate of the pixel. Must be greater than or equal to zero and less than the width of the image. The y-coordinate of the pixel. Must be greater than or equal to zero and less than the height of the image. The at the specified position. Thrown when the provided (x,y) coordinates are outside the image boundary. Execute to process image pixels in a safe and efficient manner. The defining the pixel operations. Execute to process pixels of multiple image frames in a safe and efficient manner. The second image frame. The defining the pixel operations. The pixel type of the second image frame. Execute to process pixels of multiple image frames in a safe and efficient manner. The second image frame. The third image frame. The defining the pixel operations. The pixel type of the second image frame. The pixel type of the third image frame. Copy image pixels to . The to copy image pixels to. Copy image pixels to . The of to copy image pixels to. Gets the representation of the pixels as a in the source image's pixel format stored in row major order, if the backing buffer is contiguous. To ensure the memory is contiguous, should be set to true, preferably on a non-global configuration instance (not ). WARNING: Disposing or leaking the underlying image while still working with the 's might lead to memory corruption. The referencing the image buffer. The indicating the success. Gets a reference to the pixel at the specified position. The x-coordinate of the pixel. Must be greater than or equal to zero and less than the width of the image. The y-coordinate of the pixel. Must be greater than or equal to zero and less than the height of the image. The at the specified position. Copies the pixels to a of the same size. The target pixel buffer accessor. Switches the buffers used by the image and the pixelSource meaning that the Image will "own" the buffer from the pixelSource and the pixelSource will now own the Images buffer. The pixel source. Clones the current instance. The Clones the current instance. The configuration providing initialization code which allows extending the library. The Returns a copy of the image frame in the given pixel format. The pixel format. The Returns a copy of the image frame in the given pixel format. The pixel format. The configuration providing initialization code which allows extending the library. The Clears the bitmap. The value to initialize the bitmap with. A implementing the clone logic for . Contains information about the image including dimensions, pixel type information and additional metadata Initializes a new instance of the class. The image pixel type information. The width of the image in pixels. The height of the image in pixels. The images metadata. Extension methods that allow the addition of geometry calculating methods to the type Gets the bounds of the image. The image info The Gets the bounds of the image. The image info The Encapsulates an image, which consists of the pixel data for a graphics image and its attributes. For generic -s the pixel type is known at compile time. The pixel format. Initializes a new instance of the class with the height and the width of the image. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. Initializes a new instance of the class with the height and the width of the image. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. The color to initialize the pixels with. Initializes a new instance of the class with the height and the width of the image. The width of the image in pixels. The height of the image in pixels. The color to initialize the pixels with. Initializes a new instance of the class with the height and the width of the image. The width of the image in pixels. The height of the image in pixels. Initializes a new instance of the class with the height and the width of the image. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. The images metadata. Initializes a new instance of the class wrapping an external pixel bufferx. The configuration providing initialization code which allows extending the library. Pixel buffer. The images metadata. Initializes a new instance of the class wrapping an external . The configuration providing initialization code which allows extending the library. The memory source. The width of the image in pixels. The height of the image in pixels. The images metadata. Initializes a new instance of the class with the height and the width of the image. The configuration providing initialization code which allows extending the library. The width of the image in pixels. The height of the image in pixels. The color to initialize the pixels with. The images metadata. Initializes a new instance of the class with the height and the width of the image. The configuration providing initialization code which allows extending the library. The images metadata. The frames that will be owned by this image instance. Gets the collection of image frames. Gets the root frame. Gets or sets the pixel at the specified position. The x-coordinate of the pixel. Must be greater than or equal to zero and less than the width of the image. The y-coordinate of the pixel. Must be greater than or equal to zero and less than the height of the image. The at the specified position. Thrown when the provided (x,y) coordinates are outside the image boundary. Execute to process image pixels in a safe and efficient manner. The defining the pixel operations. Execute to process pixels of multiple images in a safe and efficient manner. The second image. The defining the pixel operations. The pixel type of the second image. Execute to process pixels of multiple images in a safe and efficient manner. The second image. The third image. The defining the pixel operations. The pixel type of the second image. The pixel type of the third image. Copy image pixels to . The to copy image pixels to. Copy image pixels to . The of to copy image pixels to. Gets the representation of the pixels as a in the source image's pixel format stored in row major order, if the backing buffer is contiguous. To ensure the memory is contiguous, should be set to true, preferably on a non-global configuration instance (not ). WARNING: Disposing or leaking the underlying image while still working with the 's might lead to memory corruption. The referencing the image buffer. The indicating the success. Clones the current image Returns a new image with all the same metadata as the original. Clones the current image with the given configuration. The configuration providing initialization code which allows extending the library. Returns a new with all the same pixel data as the original. Returns a copy of the image in the given pixel format. The pixel format. The configuration providing initialization code which allows extending the library. The . Switches the buffers used by the image and the pixelSource meaning that the Image will "own" the buffer from the pixelSource and the pixelSource will now own the Images buffer. The pixel source. A pixel-specific image frame where each pixel buffer value represents an index in a color palette. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The frame width. The frame height. The color palette. Gets the configuration which allows altering default behaviour or extending the library. Gets the width of this . Gets the height of this . Gets the color palette of this . Gets the representation of the pixels as a of contiguous memory at row beginning from the first pixel on that row. WARNING: Disposing or leaking the underlying while still working with it's might lead to memory corruption. The row index in the pixel buffer. The pixel row as a . Gets the representation of the pixels as a of contiguous memory at row beginning from the first pixel on that row. Note: Values written to this span are not sanitized against the palette length. Care should be taken during assignment to prevent out-of-bounds errors. The row index in the pixel buffer. The pixel row as a . A readonly stream that add a secondary level buffer in addition to native stream buffered reading to reduce the overhead of small incremental reads. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The input stream. Gets the size, in bytes, of the underlying buffer. Gets the underlying stream. This operation is not supported in . This operation is not supported in . Provides an in-memory stream composed of non-contiguous chunks that doesn't need to be resized. Chunks are allocated by the assigned via the constructor and is designed to take advantage of buffer pooling when available. Initializes a new instance of the class. Copy entire buffer into an array. The . Write remainder of this stream to another stream. The stream to write to. A simple interface representing the filesystem. Returns a readable stream as defined by the path. Path to the file to open. A stream representing the file to open. Creates or opens a file and returns it as a writable stream as defined by the path. Path to the file to open. A stream representing the file to open. A wrapper around the local File apis. Options for allocating buffers. Indicates that the buffer should just be allocated. Indicates that the allocated buffer should be cleaned following allocation. Wraps an array as an instance. Initializes a new instance of the class. The array. The length of the buffer. Initializes a new instance of the class. The array. Gets the array. Gets the length. Defines an common interface for ref-counted objects. Increments the reference counter. Decrements the reference counter. Provides a base class for implementations by implementing pinning logic for adaption. The element type. Gets the object that should be pinned. The pinnable . Implements reference counting lifetime guard mechanism for memory resources and maintains the value of . Rent a single buffer. If the pool is full, return . Rent buffers or return 'null' if the pool is full. Defines a strategy for managing unmanaged memory ownership. Allocates and provides an implementation giving access to unmanaged buffers allocated by . The element type. Encapsulates the functionality around allocating and releasing unmanaged memory. NOT a . Gets the total outstanding handle allocations for testing purposes. Gets the total number -s retried. Memory managers are used to allocate memory for image processing operations. Gets the default platform-specific global instance that serves as the default value for . This is a get-only property, you should set 's to change the default allocator used by and it's operations. Gets the length of the largest contiguous buffer that can be handled by this allocator instance in bytes. The length of the largest contiguous buffer that can be handled by this allocator instance. Creates a default instance of a optimized for the executing platform. The . Creates the default using the provided options. The . The . Allocates an , holding a of length . Type of the data stored in the buffer. Size of the buffer to allocate. The allocation options. A buffer of values of type . When length is zero or negative. When length is over the capacity of the allocator. Releases all retained resources not being in use. Eg: by resetting array pools and letting GC to free the arrays. Allocates a . The total length of the buffer. The expected alignment (eg. to make sure image rows fit into single buffers). The . A new . Thrown when 'blockAlignment' converted to bytes is greater than the buffer capacity of the allocator. Defines options for creating the default . Gets or sets a value defining the maximum size of the 's internal memory pool in Megabytes. means platform default. Implements by newing up managed arrays on every allocation request. A implementation that allocates memory on the unmanaged heap without any pooling. Defines extension methods for . Gets the backing . The buffer. The element type. The MemoryGroup. TODO: Does not work with multi-buffer groups, should be specific to Resize. Copy columns of inplace, from positions starting at to positions at . Returns a representing the full area of the buffer. The element type The The Return a to the subregion represented by 'rectangle' The element type The The rectangle subregion The Return a to the whole area of 'buffer' The element type The The Returns the size of the buffer. The element type The The of the buffer Gets the bounds of the buffer. The Represents a rectangular region inside a 2D memory buffer (). The element type. Initializes a new instance of the struct. The . The defining a rectangular area within the buffer. Initializes a new instance of the struct. The . Gets the rectangle specifying the boundaries of the area in . Gets the being pointed by this instance. Gets the width Gets the height Gets the pixel stride which is equal to the width of . Gets the size of the area. Gets a value indicating whether the area refers to the entire Gets or sets a value at the given index. The position inside a row The row index The reference to the value Gets a span to row 'y' inside this area. The row index The span Returns a subregion as . (Similar to .) The x index at the subregion origin. The y index at the subregion origin. The desired width of the subregion. The desired height of the subregion. The subregion Returns a subregion as . (Similar to .) The specifying the boundaries of the subregion The subregion Gets a reference to the [0,0] element. The reference to the [0,0] element Represents a buffer of value type objects interpreted as a 2D region of x elements. Before RC1, this class might be target of API changes, use it on your own risk! The value type. Initializes a new instance of the class. The to wrap. The number of elements in a row. The number of rows. Gets the width. Gets the height. Gets the backing . The MemoryGroup. Gets the backing without the view abstraction. This property has been kept internal intentionally. It's public counterpart is , which only exposes the view of the MemoryGroup. Gets a reference to the element at the specified position. The x coordinate (row) The y coordinate (position at row) A reference to the element. When index is out of range of the buffer. Disposes the instance Gets a to the row 'y' beginning from the pixel at the first pixel on that row. This method does not validate the y argument for performance reason, is being propagated from lower levels. The row index. The of the pixels in the row. Thrown when row index is out of range. Gets a to the row 'y' beginning from the pixel at the first pixel on that row. The y (row) coordinate. The . Gets a to the backing data if the backing group consists of a single contiguous memory buffer. Throws otherwise. The referencing the memory area. Thrown when the backing group is discontiguous. Gets a to the backing data of if the backing group consists of a single contiguous memory buffer. Throws otherwise. The . Thrown when the backing group is discontiguous. Swaps the contents of 'destination' with 'source' if the buffers are owned (1), copies the contents of 'source' to 'destination' otherwise (2). Buffers should be of same size in case 2! A custom that can wrap of instances and cast them to be for any arbitrary unmanaged value type. The value type to use when casting the wrapped instance. The wrapped of instance. Initializes a new instance of the class. The of instance to wrap. A custom that can wrap of instances and cast them to be for any arbitrary unmanaged value type. The value type to use when casting the wrapped instance. Initializes a new instance of the class. The of instance to wrap. Represents discontiguous group of multiple uniformly-sized memory segments. The last segment can be smaller than the preceding ones. The element type. Gets the number of elements per contiguous sub-buffer preceding the last buffer. The last buffer is allowed to be smaller. Gets the aggregate number of elements in the group. Gets a value indicating whether the group has been invalidated. Invalidation usually occurs when an image processor capable to alter the image dimensions replaces the image buffers internally. Returns a value-type implementing an allocation-free enumerator of the memory groups in the current instance. The return type shouldn't be used directly: just use a block on the instance in use and the C# compiler will automatically invoke this method behind the scenes. This method takes precedence over the implementation, which is still available when casting to one of the underlying interfaces. A new instance mapping the current values in use. A value-type enumerator for instances. The element type. Returns a slice that is expected to be within the bounds of a single buffer. Otherwise is thrown. Cached pointer or array data enabling fast access from known implementations. Implements , defining a view for rather than owning the segments. This type provides an indirection, protecting the users of publicly exposed memory API-s from internal memory-swaps. Whenever an internal swap happens, the instance becomes invalid, throwing an exception on all operations. The element type. Represents discontinuous group of multiple uniformly-sized memory segments. The underlying buffers may change with time, therefore it's not safe to expose them directly on and . The element type. A implementation that consumes the underlying memory buffers. Creates a new memory group, allocating it's buffers with the provided allocator. The to use. The total length of the buffer. The expected alignment (eg. to make sure image rows fit into single buffers). The . A new . Thrown when 'blockAlignment' converted to bytes is greater than the buffer capacity of the allocator. Returns the slice of the buffer starting at global index that goes until the end of the buffer. A implementation that owns the underlying memory buffers. Selects active values in . Exception thrown when the library detects an invalid memory allocation request, or an attempt has been made to use an invalidated . Initializes a new instance of the class. The exception message text. Initializes a new instance of the class. Extension methods for . Allocates a buffer of value type objects interpreted as a 2D region of x elements. The type of buffer items to allocate. The memory allocator. The buffer width. The buffer height. A value indicating whether the allocated buffer should be contiguous, unless bigger than . The allocation options. The . Allocates a buffer of value type objects interpreted as a 2D region of x elements. The type of buffer items to allocate. The memory allocator. The buffer width. The buffer height. The allocation options. The . Allocates a buffer of value type objects interpreted as a 2D region of width x height elements. The type of buffer items to allocate. The memory allocator. The buffer size. A value indicating whether the allocated buffer should be contiguous, unless bigger than . The allocation options. The . Allocates a buffer of value type objects interpreted as a 2D region of width x height elements. The type of buffer items to allocate. The memory allocator. The buffer size. The allocation options. The . Allocates padded buffers. Generally used by encoder/decoders. The . Pixel count in the row The pixel size in bytes, eg. 3 for RGB. The padding. A . Extension methods for Gets a from an instance. The buffer The Gets the length of an internal buffer. The buffer The length of the buffer Gets a to an offsetted position inside the buffer. The buffer The start The Gets a to an offsetted position inside the buffer. The buffer The start The length of the slice The Clears the contents of this buffer. The buffer Gets a reference to the first item in the internal buffer for an instance. The buffer A reference to the first item within the memory wrapped by Represents an interval of rows in a and/or Before RC1, this class might be target of API changes, use it on your own risk! Initializes a new instance of the struct. The inclusive minimum row. The exclusive maximum row. Gets the inclusive minimum row. Gets the exclusive maximum row. Gets the difference ( - ). Returns a boolean indicating whether the given two -s are equal. The first to compare. The second to compare. True if the given -s are equal; False otherwise. Returns a boolean indicating whether the given two -s are not equal. The first to compare. The second to compare. True if the given -s are not equal; False otherwise. A custom that can wrap a rawpointer to a buffer of a specified type. The value type to use when casting the wrapped instance. This manager doesn't own the memory buffer that it points to. The pointer to the memory buffer. The length of the memory area. Initializes a new instance of the class. The pointer to the memory buffer. The length of the memory area. Enumerated frame process modes to apply to multi-frame images. Decodes all the frames of a multi-frame image. Decodes only the first frame of a multi-frame image. Encapsulates the metadata of an image frame. Initializes a new instance of the class. Initializes a new instance of the class by making a copy from other metadata. The other to create this instance from. Gets or sets the Exif profile. Gets or sets the XMP profile. Gets or sets the list of ICC profiles. Gets or sets the iptc profile. Gets the metadata value associated with the specified key. The type of format metadata. The type of format frame metadata. The key of the value to get. The . Encapsulates the metadata of an image. The default horizontal resolution value (dots per inch) in x direction. The default value is 96 . The default vertical resolution value (dots per inch) in y direction. The default value is 96 . The default pixel resolution units. The default value is . Initializes a new instance of the class. Initializes a new instance of the class by making a copy from other metadata. The other to create this instance from. Gets or sets the resolution of the image in x- direction. It is defined as the number of dots per and should be an positive value. The density of the image in x- direction. Gets or sets the resolution of the image in y- direction. It is defined as the number of dots per and should be an positive value. The density of the image in y- direction. Gets or sets unit of measure used when reporting resolution. Value Unit AspectRatio (00) No units; width:height pixel aspect ratio = Ydensity:Xdensity PixelsPerInch (01) Pixels per inch (2.54 cm) PixelsPerCentimeter (02) Pixels per centimeter PixelsPerMeter (03) Pixels per meter (100 cm) Gets or sets the Exif profile. Gets or sets the XMP profile. Gets or sets the list of ICC profiles. Gets or sets the IPTC profile. Gets the metadata value associated with the specified key. The type of metadata. The key of the value to get. The . Synchronizes the profiles with the current metadata. Provides enumeration of available pixel density units. No units; width:height pixel aspect ratio. Pixels per inch (2.54 cm). Pixels per centimeter. Pixels per meter (100 cm). Specifies exif data types. Unknown An 8-bit unsigned integer. An 8-bit byte containing one 7-bit ASCII code. The final byte is terminated with NULL. Although the standard defines ASCII this has commonly been ignored as ASCII cannot properly encode text in many languages. A 16-bit (2-byte) unsigned integer. A 32-bit (4-byte) unsigned integer. Two LONGs. The first LONG is the numerator and the second LONG expresses the denominator. An 8-bit signed integer. An 8-bit byte that can take any value depending on the field definition. A 16-bit (2-byte) signed integer. A 32-bit (4-byte) signed integer (2's complement notation). Two SLONGs. The first SLONG is the numerator and the second SLONG is the denominator. A 32-bit single precision floating point value. A 64-bit double precision floating point value. Reference to an IFD (32-bit (4-byte) unsigned integer). A 64-bit (8-byte) unsigned integer. A 64-bit (8-byte) signed integer (2's complement notation). Reference to an IFD (64-bit (8-byte) unsigned integer). Gets the size in bytes of the given data type. The data type. The . Thrown if the type is unsupported. Specifies which parts will be written when the profile is added to an image. None IfdTags ExifTags GPSTags All Represents an EXIF profile providing access to the collection of values. The byte array to read the EXIF profile from. The collection of EXIF values The thumbnail offset position in the byte stream The thumbnail length in the byte stream Initializes a new instance of the class. Initializes a new instance of the class. The byte array to read the EXIF profile from. Initializes a new instance of the class. The values. The invalid tags. Initializes a new instance of the class by making a copy from another EXIF profile. The other EXIF profile, where the clone should be made from. is null.> Gets or sets which parts will be written when the profile is added to an image. Gets the tags that where found but contained an invalid value. Gets the values of this EXIF profile. Returns the thumbnail in the EXIF profile when available. The . Returns the thumbnail in the EXIF profile when available. The pixel format. The . Returns the value with the specified tag. The tag of the exif value. The value with the specified tag. The data type of the tag. Removes the value with the specified tag. The tag of the EXIF value. True, if the value was removed, otherwise false. Sets the value of the specified tag. The tag of the exif value. The value. The data type of the tag. Converts this instance to a byte array. The Returns the value with the specified tag. The tag of the exif value. The value with the specified tag. Sets the value of the specified tag. The tag of the exif value. The value. Synchronizes the profiles with the specified metadata. The metadata. Reads and returns the collection of EXIF values. The . Reads and parses EXIF data from a stream. Gets the invalid tags. Gets or sets the thumbnail length in the byte stream. Gets or sets the thumbnail offset position in the byte stream. Reads the values to the values collection. The values. The IFD offset. Class that provides a description for an ExifTag value. Initializes a new instance of the class. The value of the exif tag. The description for the value of the exif tag. Gets the tag description from any custom attributes. The tag. The value. The . Contains methods for writing EXIF metadata. Which parts will be written. Initializes a new instance of the class. The values. The allowed parts. Returns the EXIF data. The . Class that represents an exif tag from the Exif standard 2.31. Gets the FaxProfile exif tag. Gets the ModeNumber exif tag. Gets the GPSAltitudeRef exif tag. Gets the ClipPath exif tag. Gets the VersionYear exif tag. Gets the XMP exif tag. Gets the IPTC exif tag. Gets the IccProfile exif tag. Gets the CFAPattern2 exif tag. Gets the TIFFEPStandardID exif tag. Gets the GPSVersionID exif tag. Converts the specified to a . The to convert. Determines whether the specified instances are considered equal. The first to compare. The second to compare. Determines whether the specified instances are not considered equal. The first to compare. The second to compare. Gets the PixelScale exif tag. Gets the IntergraphMatrix exif tag. Gets the ModelTiePoint exif tag. Gets the ModelTransform exif tag. Gets the UserComment exif tag. Gets the GPSProcessingMethod exif tag. Gets the GPSAreaInformation exif tag. Gets the SubfileType exif tag. Gets the SubIFDOffset exif tag. Gets the GPSIFDOffset exif tag. Gets the T4Options exif tag. Gets the T6Options exif tag. Gets the XClipPathUnits exif tag. Gets the YClipPathUnits exif tag. Gets the ProfileType exif tag. Gets the CodingMethods exif tag. Gets the T82ptions exif tag. Gets the JPEGInterchangeFormat exif tag. Gets the JPEGInterchangeFormatLength exif tag. Gets the MDFileTag exif tag. Gets the StandardOutputSensitivity exif tag. Gets the RecommendedExposureIndex exif tag. Gets the ISOSpeed exif tag. Gets the ISOSpeedLatitudeyyy exif tag. Gets the ISOSpeedLatitudezzz exif tag. Gets the FaxRecvParams exif tag. Gets the FaxRecvTime exif tag. Gets the ImageNumber exif tag. Gets the FreeOffsets exif tag. Gets the FreeByteCounts exif tag. Gets the ColorResponseUnit exif tag. Gets the TileOffsets exif tag. Gets the SMinSampleValue exif tag. Gets the SMaxSampleValue exif tag. Gets the JPEGQTables exif tag. Gets the JPEGDCTables exif tag. Gets the JPEGACTables exif tag. Gets the StripRowCounts exif tag. Gets the IntergraphRegisters exif tag. Gets the TimeZoneOffset exif tag. Gets the offset to child IFDs exif tag. Gets the ImageWidth exif tag. Gets the ImageLength exif tag. Gets the RowsPerStrip exif tag. Gets the TileWidth exif tag. Gets the TileLength exif tag. Gets the BadFaxLines exif tag. Gets the ConsecutiveBadFaxLines exif tag. Gets the PixelXDimension exif tag. Gets the PixelYDimension exif tag. Gets the StripOffsets exif tag. Gets the StripByteCounts exif tag. Gets the TileByteCounts exif tag. Gets the ImageLayer exif tag. Gets the XPosition exif tag. Gets the YPosition exif tag. Gets the XResolution exif tag. Gets the YResolution exif tag. Gets the BatteryLevel exif tag. Gets the ExposureTime exif tag. Gets the FNumber exif tag. Gets the MDScalePixel exif tag. Gets the CompressedBitsPerPixel exif tag. Gets the ApertureValue exif tag. Gets the MaxApertureValue exif tag. Gets the SubjectDistance exif tag. Gets the FocalLength exif tag. Gets the FlashEnergy2 exif tag. Gets the FocalPlaneXResolution2 exif tag. Gets the FocalPlaneYResolution2 exif tag. Gets the ExposureIndex2 exif tag. Gets the Humidity exif tag. Gets the Pressure exif tag. Gets the Acceleration exif tag. Gets the FlashEnergy exif tag. Gets the FocalPlaneXResolution exif tag. Gets the FocalPlaneYResolution exif tag. Gets the ExposureIndex exif tag. Gets the DigitalZoomRatio exif tag. Gets the GPSAltitude exif tag. Gets the GPSDOP exif tag. Gets the GPSSpeed exif tag. Gets the GPSTrack exif tag. Gets the GPSImgDirection exif tag. Gets the GPSDestBearing exif tag. Gets the GPSDestDistance exif tag. Gets the WhitePoint exif tag. Gets the PrimaryChromaticities exif tag. Gets the YCbCrCoefficients exif tag. Gets the ReferenceBlackWhite exif tag. Gets the GPSLatitude exif tag. Gets the GPSLongitude exif tag. Gets the GPSTimestamp exif tag. Gets the GPSDestLatitude exif tag. Gets the GPSDestLongitude exif tag. Gets the LensSpecification exif tag. Gets the OldSubfileType exif tag. Gets the Compression exif tag. Gets the PhotometricInterpretation exif tag. Gets the Thresholding exif tag. Gets the CellWidth exif tag. Gets the CellLength exif tag. Gets the FillOrder exif tag. Gets the Orientation exif tag. Gets the SamplesPerPixel exif tag. Gets the PlanarConfiguration exif tag. Gets the Predictor exif tag. Gets the GrayResponseUnit exif tag. Gets the ResolutionUnit exif tag. Gets the CleanFaxData exif tag. Gets the InkSet exif tag. Gets the NumberOfInks exif tag. Gets the DotRange exif tag. Gets the Indexed exif tag. Gets the OPIProxy exif tag. Gets the JPEGProc exif tag. Gets the JPEGRestartInterval exif tag. Gets the YCbCrPositioning exif tag. Gets the Rating exif tag. Gets the RatingPercent exif tag. Gets the ExposureProgram exif tag. Gets the Interlace exif tag. Gets the SelfTimerMode exif tag. Gets the SensitivityType exif tag. Gets the MeteringMode exif tag. Gets the LightSource exif tag. Gets the FocalPlaneResolutionUnit2 exif tag. Gets the SensingMethod2 exif tag. Gets the Flash exif tag. Gets the ColorSpace exif tag. Gets the FocalPlaneResolutionUnit exif tag. Gets the SensingMethod exif tag. Gets the CustomRendered exif tag. Gets the ExposureMode exif tag. Gets the WhiteBalance exif tag. Gets the FocalLengthIn35mmFilm exif tag. Gets the SceneCaptureType exif tag. Gets the GainControl exif tag. Gets the Contrast exif tag. Gets the Saturation exif tag. Gets the Sharpness exif tag. Gets the SubjectDistanceRange exif tag. Gets the GPSDifferential exif tag. Gets the BitsPerSample exif tag. Gets the MinSampleValue exif tag. Gets the MaxSampleValue exif tag. Gets the GrayResponseCurve exif tag. Gets the ColorMap exif tag. Gets the ExtraSamples exif tag. Gets the PageNumber exif tag. Gets the TransferFunction exif tag. Gets the HalftoneHints exif tag. Gets the SampleFormat exif tag. Gets the TransferRange exif tag. Gets the DefaultImageColor exif tag. Gets the JPEGLosslessPredictors exif tag. Gets the JPEGPointTransforms exif tag. Gets the YCbCrSubsampling exif tag. Gets the CFARepeatPatternDim exif tag. Gets the IntergraphPacketData exif tag. Gets the ISOSpeedRatings exif tag. Gets the SubjectArea exif tag. Gets the SubjectLocation exif tag. Gets the ShutterSpeedValue exif tag. Gets the BrightnessValue exif tag. Gets the ExposureBiasValue exif tag. Gets the AmbientTemperature exif tag. Gets the WaterDepth exif tag. Gets the CameraElevationAngle exif tag. Gets the Decode exif tag. Gets the ImageDescription exif tag. Gets the Make exif tag. Gets the Model exif tag. Gets the Software exif tag. Gets the DateTime exif tag. Gets the Artist exif tag. Gets the HostComputer exif tag. Gets the Copyright exif tag. Gets the DocumentName exif tag. Gets the PageName exif tag. Gets the InkNames exif tag. Gets the TargetPrinter exif tag. Gets the ImageID exif tag. Gets the MDLabName exif tag. Gets the MDSampleInfo exif tag. Gets the MDPrepDate exif tag. Gets the MDPrepTime exif tag. Gets the MDFileUnits exif tag. Gets the SEMInfo exif tag. Gets the SpectralSensitivity exif tag. Gets the DateTimeOriginal exif tag. Gets the DateTimeDigitized exif tag. Gets the SubsecTime exif tag. Gets the SubsecTimeOriginal exif tag. Gets the SubsecTimeDigitized exif tag. Gets the RelatedSoundFile exif tag. Gets the FaxSubaddress exif tag. Gets the OffsetTime exif tag. Gets the OffsetTimeOriginal exif tag. Gets the OffsetTimeDigitized exif tag. Gets the SecurityClassification exif tag. Gets the ImageHistory exif tag. Gets the ImageUniqueID exif tag. Gets the OwnerName exif tag. Gets the SerialNumber exif tag. Gets the LensMake exif tag. Gets the LensModel exif tag. Gets the LensSerialNumber exif tag. Gets the GDALMetadata exif tag. Gets the GDALNoData exif tag. Gets the GPSLatitudeRef exif tag. Gets the GPSLongitudeRef exif tag. Gets the GPSSatellites exif tag. Gets the GPSStatus exif tag. Gets the GPSMeasureMode exif tag. Gets the GPSSpeedRef exif tag. Gets the GPSTrackRef exif tag. Gets the GPSImgDirectionRef exif tag. Gets the GPSMapDatum exif tag. Gets the GPSDestLatitudeRef exif tag. Gets the GPSDestLongitudeRef exif tag. Gets the GPSDestBearingRef exif tag. Gets the GPSDestDistanceRef exif tag. Gets the GPSDateStamp exif tag. Gets the title tag used by Windows (encoded in UCS2). Gets the comment tag used by Windows (encoded in UCS2). Gets the author tag used by Windows (encoded in UCS2). Gets the keywords tag used by Windows (encoded in UCS2). Gets the subject tag used by Windows (encoded in UCS2). Gets the JPEGTables exif tag. Gets the OECF exif tag. Gets the ExifVersion exif tag. Gets the ComponentsConfiguration exif tag. Gets the MakerNote exif tag. Gets the FlashpixVersion exif tag. Gets the SpatialFrequencyResponse exif tag. Gets the SpatialFrequencyResponse2 exif tag. Gets the Noise exif tag. Gets the CFAPattern exif tag. Gets the DeviceSettingDescription exif tag. Gets the ImageSourceData exif tag. Gets the FileSource exif tag. Gets the ImageDescription exif tag. All exif tags from the Exif standard 2.31. Unknown SubIFDOffset GPSIFDOffset Indicates the identification of the Interoperability rule. See https://www.awaresystems.be/imaging/tiff/tifftags/privateifd/interoperability/interoperabilityindex.html A general indication of the kind of data contained in this subfile. See Section 8: Baseline Fields. A general indication of the kind of data contained in this subfile. See Section 8: Baseline Fields. The number of columns in the image, i.e., the number of pixels per row. See Section 8: Baseline Fields. The number of rows of pixels in the image. See Section 8: Baseline Fields. Number of bits per component. See Section 8: Baseline Fields. Compression scheme used on the image data. See Section 8: Baseline Fields. The color space of the image data. See Section 8: Baseline Fields. For black and white TIFF files that represent shades of gray, the technique used to convert from gray to black and white pixels. See Section 8: Baseline Fields. The width of the dithering or halftoning matrix used to create a dithered or halftoned bilevel file. See Section 8: Baseline Fields. The length of the dithering or halftoning matrix used to create a dithered or halftoned bilevel file. See Section 8: Baseline Fields. The logical order of bits within a byte. See Section 8: Baseline Fields. The name of the document from which this image was scanned. See Section 12: Document Storage and Retrieval. A string that describes the subject of the image. See Section 8: Baseline Fields. The scanner manufacturer. See Section 8: Baseline Fields. The scanner model name or number. See Section 8: Baseline Fields. For each strip, the byte offset of that strip. See Section 8: Baseline Fields. The orientation of the image with respect to the rows and columns. See Section 8: Baseline Fields. The number of components per pixel. See Section 8: Baseline Fields. The number of rows per strip. See Section 8: Baseline Fields. For each strip, the number of bytes in the strip after compression. See Section 8: Baseline Fields. The minimum component value used. See Section 8: Baseline Fields. The maximum component value used. See Section 8: Baseline Fields. The number of pixels per ResolutionUnit in the ImageWidth direction. See Section 8: Baseline Fields. The number of pixels per ResolutionUnit in the direction. See Section 8: Baseline Fields. How the components of each pixel are stored. See Section 8: Baseline Fields. The name of the page from which this image was scanned. See Section 12: Document Storage and Retrieval. X position of the image. See Section 12: Document Storage and Retrieval. Y position of the image. See Section 12: Document Storage and Retrieval. For each string of contiguous unused bytes in a TIFF file, the byte offset of the string. See Section 8: Baseline Fields. For each string of contiguous unused bytes in a TIFF file, the number of bytes in the string. See Section 8: Baseline Fields. The precision of the information contained in the GrayResponseCurve. See Section 8: Baseline Fields. For grayscale data, the optical density of each possible pixel value. See Section 8: Baseline Fields. Options for Group 3 Fax compression. Options for Group 4 Fax compression. The unit of measurement for XResolution and YResolution. See Section 8: Baseline Fields. The page number of the page from which this image was scanned. See Section 12: Document Storage and Retrieval. ColorResponseUnit TransferFunction Name and version number of the software package(s) used to create the image. See Section 8: Baseline Fields. Date and time of image creation. See Section 8: Baseline Fields. Person who created the image. See Section 8: Baseline Fields. The computer and/or operating system in use at the time of image creation. See Section 8: Baseline Fields. Predictor WhitePoint PrimaryChromaticities A color map for palette color images. See Section 8: Baseline Fields. HalftoneHints TileWidth TileLength TileOffsets TileByteCounts BadFaxLines CleanFaxData ConsecutiveBadFaxLines Offset to child IFDs. See TIFF Supplement 1: Adobe Pagemaker 6.0. Each value is an offset (from the beginning of the TIFF file, as always) to a child IFD. Child images provide extra information for the parent image - such as a subsampled version of the parent image. TIFF data type is Long or 13, IFD. The IFD type is identical to LONG, except that it is only used to point to other valid IFDs. InkSet InkNames NumberOfInks DotRange TargetPrinter Description of extra components. See Section 8: Baseline Fields. SampleFormat SMinSampleValue SMaxSampleValue TransferRange ClipPath XClipPathUnits YClipPathUnits Indexed JPEGTables OPIProxy Used in the TIFF-FX standard to point to an IFD containing tags that are globally applicable to the complete TIFF file. See RFC2301: TIFF-F/FX Specification. It is recommended that a TIFF writer place this field in the first IFD, where a TIFF reader would find it quickly. Each field in the GlobalParametersIFD is a TIFF field that is legal in any IFD. Required baseline fields should not be located in the GlobalParametersIFD, but should be in each image IFD. If a conflict exists between fields in the GlobalParametersIFD and in the image IFDs, then the data in the image IFD shall prevail. ProfileType FaxProfile CodingMethods VersionYear ModeNumber Decode DefaultImageColor T82ptions JPEGProc JPEGInterchangeFormat JPEGInterchangeFormatLength JPEGRestartInterval JPEGLosslessPredictors JPEGPointTransforms JPEGQTables JPEGDCTables JPEGACTables YCbCrCoefficients YCbCrSubsampling YCbCrPositioning ReferenceBlackWhite StripRowCounts XMP Rating RatingPercent ImageID Annotation data, as used in 'Imaging for Windows'. See Other Private TIFF tags: http://www.awaresystems.be/imaging/tiff/tifftags/private.html CFARepeatPatternDim CFAPattern2 BatteryLevel Copyright notice. See Section 8: Baseline Fields. ExposureTime FNumber Specifies the pixel data format encoding in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html Specifies a scale factor in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html The scale factor is to be applies to each pixel before presenting it to the user. Used to specify the conversion from 16bit to 8bit in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html Since the display is only 9bit, the 16bit data must be converted before display. 8bit value = (16bit value - low range ) * 255 / (high range - low range) Count: n. Name of the lab that scanned this file, as used in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html Information about the sample, as used in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html This information is entered by the person that scanned the file. Note that the word 'sample' as used here, refers to the scanned sample, not an image channel. Date the sample was prepared, as used in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html The format of this data is YY/MM/DD. Note that the word 'sample' as used here, refers to the scanned sample, not an image channel. Time the sample was prepared, as used in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html Format of this data is HH:MM using the 24-hour clock. Note that the word 'sample' as used here, refers to the scanned sample, not an image channel. Units for data in this file, as used in the Molecular Dynamics GEL file format. See Molecular Dynamics GEL File Format and Private Tags: https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html PixelScale IPTC (International Press Telecommunications Council) metadata. See IPTC 4.1 specification. IntergraphPacketData IntergraphRegisters IntergraphMatrix ModelTiePoint SEMInfo ModelTransform Collection of Photoshop 'Image Resource Blocks' (Embedded Metadata). See Extracting the Thumbnail from the PhotoShop private TIFF Tag: https://www.awaresystems.be/imaging/tiff/tifftags/docs/photoshopthumbnail.html ICC profile data. See https://www.awaresystems.be/imaging/tiff/tifftags/iccprofile.html Used in interchangeable GeoTIFF files. See https://www.awaresystems.be/imaging/tiff/tifftags/geokeydirectorytag.html This tag is also know as 'ProjectionInfoTag' and 'CoordSystemInfoTag' This tag may be used to store the GeoKey Directory, which defines and references the "GeoKeys". Used in interchangeable GeoTIFF files. See https://www.awaresystems.be/imaging/tiff/tifftags/geodoubleparamstag.html This tag is used to store all of the DOUBLE valued GeoKeys, referenced by the GeoKeyDirectoryTag. The meaning of any value of this double array is determined from the GeoKeyDirectoryTag reference pointing to it. FLOAT values should first be converted to DOUBLE and stored here. Used in interchangeable GeoTIFF files. See https://www.awaresystems.be/imaging/tiff/tifftags/geoasciiparamstag.html This tag is used to store all of the ASCII valued GeoKeys, referenced by the GeoKeyDirectoryTag. Since keys use offsets into tags, any special comments may be placed at the beginning of this tag. For the most part, the only keys that are ASCII valued are "Citation" keys, giving documentation and references for obscure projections, datums, etc. ImageLayer ExposureProgram SpectralSensitivity ISOSpeedRatings OECF Interlace TimeZoneOffset SelfTimerMode SensitivityType StandardOutputSensitivity RecommendedExposureIndex ISOSpeed ISOSpeedLatitudeyyy ISOSpeedLatitudezzz FaxRecvParams FaxSubaddress FaxRecvTime ExifVersion DateTimeOriginal DateTimeDigitized OffsetTime OffsetTimeOriginal OffsetTimeDigitized ComponentsConfiguration CompressedBitsPerPixel ShutterSpeedValue ApertureValue BrightnessValue ExposureBiasValue MaxApertureValue SubjectDistance MeteringMode LightSource Flash FocalLength FlashEnergy2 SpatialFrequencyResponse2 Noise FocalPlaneXResolution2 FocalPlaneYResolution2 FocalPlaneResolutionUnit2 ImageNumber SecurityClassification ImageHistory SubjectArea ExposureIndex2 TIFFEPStandardID SensingMethod MakerNote UserComment SubsecTime SubsecTimeOriginal SubsecTimeDigitized ImageSourceData AmbientTemperature Humidity Pressure WaterDepth Acceleration CameraElevationAngle XPTitle XPComment XPAuthor XPKeywords XPSubject FlashpixVersion ColorSpace PixelXDimension PixelYDimension RelatedSoundFile A pointer to the Exif-related Interoperability IFD. See https://www.awaresystems.be/imaging/tiff/tifftags/privateifd/interoperability.html Interoperability IFD is composed of tags which stores the information to ensure the Interoperability. The Interoperability structure of Interoperability IFD is same as TIFF defined IFD structure but does not contain the image data characteristically compared with normal TIFF IFD. FlashEnergy SpatialFrequencyResponse FocalPlaneXResolution FocalPlaneYResolution FocalPlaneResolutionUnit SubjectLocation ExposureIndex SensingMethod FileSource SceneType CFAPattern CustomRendered ExposureMode WhiteBalance DigitalZoomRatio FocalLengthIn35mmFilm SceneCaptureType GainControl Contrast Saturation Sharpness DeviceSettingDescription SubjectDistanceRange ImageUniqueID OwnerName SerialNumber LensSpecification LensMake LensModel LensSerialNumber GDALMetadata GDALNoData GPSVersionID GPSLatitudeRef GPSLatitude GPSLongitudeRef GPSLongitude GPSAltitudeRef GPSAltitude GPSTimestamp GPSSatellites GPSStatus GPSMeasureMode GPSDOP GPSSpeedRef GPSSpeed GPSTrackRef GPSTrack GPSImgDirectionRef GPSImgDirection GPSMapDatum GPSDestLatitudeRef GPSDestLatitude GPSDestLongitudeRef GPSDestLongitude GPSDestBearingRef GPSDestBearing GPSDestDistanceRef GPSDestDistance GPSProcessingMethod GPSAreaInformation GPSDateStamp GPSDifferential Used in the Oce scanning process. Identifies the scanticket used in the scanning process. Includes a trailing zero. See https://www.awaresystems.be/imaging/tiff/tifftags/docs/oce.html Used in the Oce scanning process. Identifies the application to process the TIFF file that results from scanning. Includes a trailing zero. See https://www.awaresystems.be/imaging/tiff/tifftags/docs/oce.html Used in the Oce scanning process. This is the user's answer to an optional question embedded in the Oce scanticket, and presented to that user before scanning. It can serve in further determination of the workflow. See https://www.awaresystems.be/imaging/tiff/tifftags/docs/oce.html Used in the Oce scanning process. This tag encodes the imageprocessing done by the Oce ImageLogic module in the scanner to ensure optimal quality for certain workflows. See https://www.awaresystems.be/imaging/tiff/tifftags/docs/oce.html Alias Sketchbook Pro layer usage description. See https://www.awaresystems.be/imaging/tiff/tifftags/docs/alias.html Class that represents an exif tag from the Exif standard 2.31 with as the data type of the tag. The data type of the tag. The EXIF encoded string structure. Initializes a new instance of the struct. Default use Unicode character code. The text value. Initializes a new instance of the struct. The character code. The text value. The 8-byte character code enum. The ASCII (ITU-T T.50 IA5) character code. The JIS (X208-1990) character code. The Unicode character code. The undefined character code. Gets the character ode. Gets the text. Converts the specified to an instance of this type. The text value. Converts the specified to a . The to convert. Enumerates the available orientation values supplied by EXIF metadata. Unknown rotation. The 0th row at the top, the 0th column on the left. The 0th row at the top, the 0th column on the right. The 0th row at the bottom, the 0th column on the right. The 0th row at the bottom, the 0th column on the left. The 0th row on the left, the 0th column at the top. The 0th row at the right, the 0th column at the top. The 0th row on the right, the 0th column at the bottom. The 0th row on the left, the 0th column at the bottom. Gets the value of the current instance as a string. A value of the exif profile. Gets the data type of the exif value. Gets a value indicating whether the value is an array. Gets the tag of the exif value. Gets the value of this exif value. The value of this exif value. Sets the value of this exif value. The value of this exif value. A value indicating whether the value could be set. A value of the exif profile. The type of the value. Gets or sets the value. A segment of a curve Initializes a new instance of the class. The signature of this segment Gets the signature of this segment A formula based curve segment Initializes a new instance of the class. The type of this segment Gamma segment parameter A segment parameter B segment parameter C segment parameter D segment parameter E segment parameter Gets the type of this curve Gets the gamma curve parameter Gets the A curve parameter Gets the B curve parameter Gets the C curve parameter Gets the D curve parameter Gets the E curve parameter A one dimensional ICC curve. Initializes a new instance of the class. The break points of this curve The segments of this curve Gets the breakpoints that separate two curve segments Gets an array of curve segments A parametric curve Initializes a new instance of the class. G curve parameter Initializes a new instance of the class. G curve parameter A curve parameter B curve parameter Initializes a new instance of the class. G curve parameter A curve parameter B curve parameter C curve parameter Initializes a new instance of the class. G curve parameter A curve parameter B curve parameter C curve parameter D curve parameter Initializes a new instance of the class. G curve parameter A curve parameter B curve parameter C curve parameter D curve parameter E curve parameter F curve parameter Gets the type of this curve Gets the G curve parameter Gets the A curve parameter Gets the B curve parameter Gets the C curve parameter Gets the D curve parameter Gets the E curve parameter Gets the F curve parameter A response curve Initializes a new instance of the class. The type of this curve The XYZ values The response arrays Gets the type of this curve Gets the XYZ values Gets the response arrays A sampled curve segment Initializes a new instance of the class. The curve values of this segment Gets the curve values of this segment Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types Provides methods to read ICC data types The data that is read The current reading position Initializes a new instance of the class. The data to read Gets the length in bytes of the raw data Sets the reading position to the given value The new index position Returns the current without increment and adds the given increment The value to increment The current without the increment Calculates the 4 byte padding and adds it to the variable Calculates the 4 byte padding the number of bytes to pad Gets the bit value at a specified position The value from where the bit will be extracted Position of the bit. Zero based index from left to right. The bit value at specified position Reads a The read curve Reads a The number of channels The read curve Reads a The read curve Reads a The read segment Reads a The read segment Reads a The read segment Reads curve data Number of input channels The curve data Reads an 8bit lookup table The read LUT Reads a 16bit lookup table The number of entries The read LUT Reads a CLUT depending on type Input channel count Output channel count If true, it's read as CLUTf32, else read as either CLUT8 or CLUT16 depending on embedded information The read CLUT Reads an 8 bit CLUT Input channel count Output channel count Grid point count for each CLUT channel The read CLUT8 Reads a 16 bit CLUT Input channel count Output channel count Grid point count for each CLUT channel The read CLUT16 Reads a 32bit floating point CLUT Input channel count Output channel count Grid point count for each CLUT channel The read CLUTf32 Reads a two dimensional matrix Number of values in X Number of values in Y True if the values are encoded as Single; false if encoded as Fix16 The read matrix Reads a one dimensional matrix Number of values True if the values are encoded as Single; false if encoded as Fix16 The read matrix Reads a The read Reads a CurveSet Number of input channels Number of output channels The read Reads a Matrix Number of input channels Number of output channels The read Reads a CLUT Number of input channels Number of output channels The read Reads a DateTime the value Reads an ICC profile version number the version number Reads an XYZ number the XYZ number Reads a profile ID the profile ID Reads a position number the position number Reads a response number the response number Reads a named color Number of device coordinates the named color Reads a profile description the profile description Reads a colorant table entry the profile description Reads a screening channel the screening channel Reads an ushort the value Reads a short the value Reads an uint the value Reads an int the value Reads an ulong the value Reads a long the value Reads a float. the value Reads a double the value Reads an ASCII encoded string. number of bytes to read The value as a string Reads an UTF-16 big-endian encoded string. number of bytes to read The value as a string Reads a signed 32bit number with 1 sign bit, 15 value bits and 16 fractional bits. The number as double Reads an unsigned 32bit number with 16 value bits and 16 fractional bits. The number as double Reads an unsigned 16bit number with 1 value bit and 15 fractional bits. The number as double Reads an unsigned 16bit number with 8 value bits and 8 fractional bits. The number as double Reads a number of bytes and advances the index. The number of bytes to read The read bytes Reads a tag data entry The table entry with reading information the tag data entry Reads the header of a The read signature Reads the header of a and checks if it's the expected value expected value to check against Reads a with an unknown The size of the entry in bytes The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The size of the entry in bytes The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The size of the entry in bytes The read entry Reads a The read entry Reads a The size of the entry in bytes The read entry Reads a The size of the entry in bytes The read entry Reads a The size of the entry in bytes The read entry Reads a The size of the entry in bytes The read entry Reads a The size of the entry in bytes The read entry Reads a The size of the entry in bytes The read entry Reads a The read entry Reads a The size of the entry in bytes The read entry Reads a The read entry Reads a The read entry Reads a The read entry Reads a The size of the entry in bytes The read entry Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types Provides methods to write ICC data types The underlying stream where the data is written to To detect redundant calls Initializes a new instance of the class. Gets the currently written length in bytes Gets the written data bytes The written data Sets the writing position to the given value The new index position Writes a byte array The array to write The number of bytes written Writes a ushort array The array to write The number of bytes written Writes a short array The array to write The number of bytes written Writes a uint array The array to write The number of bytes written Writes an int array The array to write The number of bytes written Writes a ulong array The array to write The number of bytes written Write a number of empty bytes The number of bytes to write The number of bytes written Writes empty bytes to a 4-byte margin The number of bytes written Writes given bytes from pointer Pointer to the bytes to write The number of bytes to write The number of bytes written Writes given bytes from pointer ignoring endianness Pointer to the bytes to write The number of bytes to write The number of bytes written Writes curve data The curves to write The number of bytes written Writes a The curve to write The number of bytes written Writes a The curve to write The number of bytes written Writes a The curve to write The number of bytes written Writes a The curve to write The number of bytes written Writes a The curve to write The number of bytes written Writes a The curve to write The number of bytes written Writes an 8bit lookup table The LUT to write The number of bytes written Writes an 16bit lookup table The LUT to write The number of bytes written Writes an color lookup table The CLUT to write The number of bytes written Writes a 8bit color lookup table The CLUT to write The number of bytes written Writes a 16bit color lookup table The CLUT to write The number of bytes written Writes a 32bit float color lookup table The CLUT to write The number of bytes written Writes a two dimensional matrix The matrix to write True if the values are encoded as Single; false if encoded as Fix16 The number of bytes written Writes a two dimensional matrix The matrix to write True if the values are encoded as Single; false if encoded as Fix16 The number of bytes written Writes a two dimensional matrix The matrix to write True if the values are encoded as Single; false if encoded as Fix16 The number of bytes written Writes a one dimensional matrix The matrix to write True if the values are encoded as Single; false if encoded as Fix16 The number of bytes written Writes a one dimensional matrix The matrix to write True if the values are encoded as Single; false if encoded as Fix16 The number of bytes written Writes a The element to write The number of bytes written Writes a CurveSet The element to write The number of bytes written Writes a Matrix The element to write The number of bytes written Writes a CLUT The element to write The number of bytes written Writes a DateTime The value to write the number of bytes written Writes an ICC profile version number The value to write the number of bytes written Writes an XYZ number The value to write the number of bytes written Writes a profile ID The value to write the number of bytes written Writes a position number The value to write the number of bytes written Writes a response number The value to write the number of bytes written Writes a named color The value to write the number of bytes written Writes a profile description The value to write the number of bytes written Writes a screening channel The value to write the number of bytes written Writes a byte The value to write the number of bytes written Writes an ushort The value to write the number of bytes written Writes a short The value to write the number of bytes written Writes an uint The value to write the number of bytes written Writes an int The value to write the number of bytes written Writes an ulong The value to write the number of bytes written Writes a long The value to write the number of bytes written Writes a float The value to write the number of bytes written Writes a double The value to write the number of bytes written Writes a signed 32bit number with 1 sign bit, 15 value bits and 16 fractional bits The value to write the number of bytes written Writes an unsigned 32bit number with 16 value bits and 16 fractional bits The value to write the number of bytes written Writes an unsigned 16bit number with 1 value bit and 15 fractional bits The value to write the number of bytes written Writes an unsigned 16bit number with 8 value bits and 8 fractional bits The value to write the number of bytes written Writes an ASCII encoded string the string to write the number of bytes written Writes an ASCII encoded string resizes it to the given length The string to write The desired length of the string (including potential null terminator) If True, there will be a \0 added at the end the number of bytes written Writes an UTF-16 big-endian encoded string the string to write the number of bytes written Writes a tag data entry The entry to write The table entry for the written data entry The number of bytes written (excluding padding) Writes a tag data entry (without padding) The entry to write The number of bytes written Writes the header of a The signature of the entry The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Writes a The entry to write The number of bytes written Color lookup table data type 32bit floating point 8bit unsigned integer (byte) 16bit unsigned integer (ushort) Colorant Encoding Unknown colorant encoding ITU-R BT.709-2 colorant encoding SMPTE RP145 colorant encoding EBU Tech.3213-E colorant encoding P22 colorant encoding Color Space Type CIE XYZ CIE Lab CIE Luv YCbCr CIE Yxy RGB Gray HSV HLS CMYK CMY Generic 2 channel color Generic 3 channel color Generic 4 channel color Generic 5 channel color Generic 6 channel color Generic 7 channel color Generic 8 channel color Generic 9 channel color Generic 10 channel color Generic 11 channel color Generic 12 channel color Generic 13 channel color Generic 14 channel color Generic 15 channel color Curve Measurement Encodings ISO 5-3 densitometer response. This is the accepted standard for reflection densitometers for measuring photographic color prints ISO 5-3 densitometer response which is the accepted standard in Europe for color reflection densitometers ISO 5-3 densitometer response commonly referred to as narrow band or interference-type response. ISO 5-3 wide band color reflection densitometer response which is the accepted standard in the United States for color reflection densitometers ISO 5-3 densitometer response for measuring color negatives DIN 16536-2 densitometer response, with no polarizing filter DIN 16536-2 densitometer response, with polarizing filter DIN 16536-2 narrow band densitometer response, with no polarizing filter DIN 16536-2 narrow band densitometer response, with polarizing filter Curve Segment Signature Curve defined by a formula Curve defined by multiple segments Enumerates the basic data types as defined in ICC.1:2010 version 4.3.0.0 Section 4.2 to 4.15 A 12-byte value representation of the time and date A single-precision 32-bit floating-point as specified in IEEE 754, excluding un-normalized s, infinities, and not a "" (NaN) values Positions of some data elements are indicated using a position offset with the data element's size. An 8-byte value, used to associate a normalized device code with a measurement value A fixed signed 4-byte (32-bit) quantity which has 16 fractional bits A fixed unsigned 4-byte (32-bit) quantity having 16 fractional bits A fixed unsigned 2-byte (16-bit) quantity having15 fractional bits A fixed unsigned 2-byte (16-bit) quantity having 8 fractional bits An unsigned 2-byte (16-bit) integer An unsigned 4-byte (32-bit) integer An unsigned 8-byte (64-bit) integer An unsigned 1-byte (8-bit) integer A set of three fixed signed 4-byte (32-bit) quantities used to encode CIEXYZ, nCIEXYZ, and PCSXYZ tristimulus values Alpha-numeric values, and other input and output codes, shall conform to the American Standard Code for Information Interchange (ASCII) specified in ISO/IEC 646. Device attributes. Can be combined with a logical OR The least-significant 32 bits are defined by the ICC, the rest can be used for vendor specific values Opacity transparent Opacity reflective Reflectivity matte Reflectivity glossy Polarity negative Polarity positive Chroma black and white Chroma color Formula curve segment type Type 1: Y = (a * X + b)^γ + c Type 1: Y = a * log10 (b * X^γ + c) + d Type 3: Y = a * b^(c * X + d) + e Measurement Geometry Unknown geometry Geometry of 0°:45° or 45°:0° Geometry of 0°:d or d:0° Multi process element signature Set of curves Matrix transformation Color lookup table Reserved for future expansion. Do not use! Reserved for future expansion. Do not use! Formula curve segment type Type 1: Y = X^g CIE 122-1996: For X >= -b/a: Y =(a * X + b)^g For X $lt; -b/a: Y = 0 IEC 61966-3: For X >= -b/a: Y =(a * X + b)^g + c For X $lt; -b/a: Y = c IEC 61966-2-1 (sRGB): For X >= d: Y =(a * X + b)^g For X $lt; d: Y = c * X Type 5: For X >= d: Y =(a * X + b)^g + c For X $lt; d: Y = c * X + f Enumerates the primary platform/operating system framework for which the profile was created No platform identified Apple Computer, Inc. Microsoft Corporation Silicon Graphics, Inc. Sun Microsystems, Inc. Profile Class Name Input profiles are generally used with devices such as scanners and digital cameras. The types of profiles available for use as Input profiles are N-component LUT-based, Three-component matrix-based, and monochrome. This class of profiles represents display devices such as monitors. The types of profiles available for use as Display profiles are N-component LUT-based, Three-component matrix-based, and monochrome. Output profiles are used to support devices such as printers and film recorders. The types of profiles available for use as Output profiles are N-component LUT-based and Monochrome. This profile contains a pre-evaluated transform that cannot be undone, which represents a one-way link or connection between devices. It does not represent any device model nor can it be embedded into images. This profile provides the relevant information to perform a transformation between color encodings and the PCS. This type of profile is based on modeling rather than device measurement or characterization data. ColorSpace profiles may be embedded in images. This profile represents abstract transforms and does not represent any device model. Color transformations using Abstract profiles are performed from PCS to PCS. Abstract profiles cannot be embedded in images. NamedColor profiles can be thought of as sibling profiles to device profiles. For a given device there would be one or more device profiles to handle process color conversions and one or more named color profiles to handle named colors. Profile flags. Can be combined with a logical OR. The least-significant 16 bits are reserved for the ICC, the rest can be used for vendor specific values No flags (equivalent to NotEmbedded and Independent) Profile is embedded within another file Profile is embedded within another file Profile cannot be used independently of the embedded color data Profile can be used independently of the embedded color data Enumerates the ICC Profile Tags as defined in ICC.1:2010 version 4.3.0.0 Section 9 Each tag value represent the size of the tag in the profile. Unknown tag A2B0 - This tag defines a color transform from Device, Color Encoding or PCS, to PCS, or a color transform from Device 1 to Device 2, using lookup table tag element structures A2B2 - This tag describes the color transform from Device or Color Encoding to PCS using lookup table tag element structures A2B2 - This tag describes the color transform from Device or Color Encoding to PCS using lookup table tag element structures bXYZ - This tag contains the third column in the matrix used in matrix/TRC transforms. bTRC - This tag contains the blue channel tone reproduction curve. The first element represents no colorant (white) or phosphor (black) and the last element represents 100 % colorant (blue) or 100 % phosphor (blue). B2A0 - This tag defines a color transform from PCS to Device or Color Encoding using the lookup table tag element structures B2A1 - This tag defines a color transform from PCS to Device or Color Encoding using the lookup table tag element structures. B2A2 - This tag defines a color transform from PCS to Device or Color Encoding using the lookup table tag element structures. B2D0 - This tag defines a color transform from PCS to Device. It supports float32Number-encoded input range, output range and transform, and provides a means to override the BToA0 tag. B2D1 - This tag defines a color transform from PCS to Device. It supports float32Number-encoded input range, output range and transform, and provides a means to override the BToA1 tag. B2D2 - This tag defines a color transform from PCS to Device. It supports float32Number-encoded input range, output range and transform, and provides a means to override the BToA2 tag. B2D3 - This tag defines a color transform from PCS to Device. It supports float32Number-encoded input range, output range and transform, and provides a means to override the BToA1 tag. calt - This tag contains the profile calibration date and time. This allows applications and utilities to verify if this profile matches a vendor's profile and how recently calibration has been performed. targ - This tag contains the name of the registered characterization data set, or it contains the measurement data for a characterization target. chad - This tag contains a matrix, which shall be invertible, and which converts an nCIEXYZ color, measured using the actual illumination conditions and relative to the actual adopted white, to an nCIEXYZ color relative to the PCS adopted white chrm - This tag contains the type and the data of the phosphor/colorant chromaticity set used. clro - This tag specifies the laydown order of colorants. clrt clot - This tag identifies the colorants used in the profile by a unique name and set of PCSXYZ or PCSLAB values. When used in DeviceLink profiles only the PCSLAB values shall be permitted. ciis - This tag indicates the image state of PCS colorimetry produced using the colorimetric intent transforms. cprt - This tag contains the text copyright information for the profile. crdi - Removed in V4 data - Removed in V4 dtim - Removed in V4 dmnd - This tag describes the structure containing invariant and localizable versions of the device manufacturer for display dmdd - This tag describes the structure containing invariant and localizable versions of the device model for display. devs - Removed in V4 D2B0 - This tag defines a color transform from Device to PCS. It supports float32Number-encoded input range, output range and transform, and provides a means to override the AToB0 tag D2B1 - This tag defines a color transform from Device to PCS. It supports float32Number-encoded input range, output range and transform, and provides a means to override the AToB1 tag D2B2 - This tag defines a color transform from Device to PCS. It supports float32Number-encoded input range, output range and transform, and provides a means to override the AToB1 tag D2B3 - This tag defines a color transform from Device to PCS. It supports float32Number-encoded input range, output range and transform, and provides a means to override the AToB1 tag gamt - This tag provides a table in which PCS values are the input and a single output value for each input value is the output. If the output value is 0, the PCS color is in-gamut. If the output is non-zero, the PCS color is out-of-gamut kTRC - This tag contains the grey tone reproduction curve. The tone reproduction curve provides the necessary information to convert between a single device channel and the PCSXYZ or PCSLAB encoding. gXYZ - This tag contains the second column in the matrix, which is used in matrix/TRC transforms. gTRC - This tag contains the green channel tone reproduction curve. The first element represents no colorant (white) or phosphor (black) and the last element represents 100 % colorant (green) or 100 % phosphor (green). lumi - This tag contains the absolute luminance of emissive devices in candelas per square meter as described by the Y channel. meas - This tag describes the alternative measurement specification, such as a D65 illuminant instead of the default D50. bkpt - Removed in V4 wtpt - This tag, which is used for generating the ICC-absolute colorimetric intent, specifies the chromatically adapted nCIEXYZ tristimulus values of the media white point. ncol - OBSOLETE, use ncl2 - This tag contains the named color information providing a PCS and optional device representation for a list of named colors. resp - This tag describes the structure containing a description of the device response for which the profile is intended. rig0 - There is only one standard reference medium gamut, as defined in ISO 12640-3 pre0 - This tag contains the preview transformation from PCS to device space and back to the PCS. pre1 - This tag defines the preview transformation from PCS to device space and back to the PCS. pre2 - This tag contains the preview transformation from PCS to device space and back to the PCS. desc - This tag describes the structure containing invariant and localizable versions of the profile description for display. pseq - This tag describes the structure containing a description of the profile sequence from source to destination, typically used with the DeviceLink profile. psd0 - Removed in V4 psd1 - Removed in V4 psd2 - Removed in V4 psd3 - Removed in V4 ps2s - Removed in V4 psd2i- Removed in V4 rXYZ - This tag contains the first column in the matrix, which is used in matrix/TRC transforms. This tag contains the red channel tone reproduction curve. The first element represents no colorant (white) or phosphor (black) and the last element represents 100 % colorant (red) or 100 % phosphor (red). rig2 - There is only one standard reference medium gamut, as defined in ISO 12640-3. scrd - Removed in V4 scrn - Removed in V4 tech - The device technology signature bfd - Removed in V4 vued - This tag describes the structure containing invariant and localizable versions of the viewing conditions. view - This tag defines the viewing conditions parameters Rendering intent In perceptual transforms the PCS values represent hypothetical measurements of a color reproduction on the reference reflective medium. By extension, for the perceptual intent, the PCS represents the appearance of that reproduction as viewed in the reference viewing environment by a human observer adapted to that environment. The exact color rendering of the perceptual intent is vendor specific. Transformations for this intent shall re-scale the in-gamut, chromatically adapted tristimulus values such that the white point of the actual medium is mapped to the PCS white point (for either input or output) The exact color rendering of the saturation intent is vendor specific and involves compromises such as trading off preservation of hue in order to preserve the vividness of pure colors. Transformations for this intent shall leave the chromatically adapted nCIEXYZ tristimulus values of the in-gamut colors unchanged. Screening flags. Can be combined with a logical OR. No flags (equivalent to NotDefaultScreens and UnitLinesPerCm) Use printer default screens Don't use printer default screens Frequency units in Lines/Inch Frequency units in Lines/cm Enumerates the screening spot types Unknown spot type Default printer spot type Round stop type Diamond spot type Ellipse spot type Line spot type Square spot type Cross spot type Signature Name Unknown signature Scene Colorimetry Estimates Scene Appearance Estimates Focal Plane Colorimetry Estimates Reflection Hardcopy Original Colorimetry Reflection Print Output Colorimetry Perceptual Reference Medium Gamut Film Scanner Digital Camera Reflective Scanner InkJet Printer Thermal Wax Printer Electrophotographic Printer Electrostatic Printer Dye Sublimation Printer Photographic Paper Printer Film Writer Video Monitor Video Camera Projection Television Cathode Ray Tube Display Passive Matrix Display Active Matrix Display Photo CD Photographic Image Setter Gravure Offset Lithography Silkscreen Flexography Motion Picture Film Scanner Motion Picture Film Recorder Digital Motion Picture Camera Digital Cinema Projector Standard Illuminant Unknown illuminant D50 illuminant D65 illuminant D93 illuminant F2 illuminant D55 illuminant A illuminant D50 illuminant F8 illuminant Standard Observer Unknown observer CIE 1931 observer CIE 1964 observer Type Signature Unknown type signature The chromaticity tag type provides basic chromaticity data and type of phosphors or colorants of a monitor to applications and utilities This is an optional tag which specifies the laydown order in which colorants will be printed on an n-colorant device. The laydown order may be the same as the channel generation order listed in the colorantTableTag or the channel order of a color encoding type such as CMYK, in which case this tag is not needed. When this is not the case (for example, ink-towers sometimes use the order KCMY), this tag may be used to specify the laydown order of the colorants The purpose of this tag is to identify the colorants used in the profile by a unique name and set of PCSXYZ or PCSLAB values to give the colorant an unambiguous value. The first colorant listed is the colorant of the first device channel of a LUT tag. The second colorant listed is the colorant of the second device channel of a LUT tag, and so on The curveType embodies a one-dimensional function which maps an input value in the domain of the function to an output value in the range of the function The dataType is a simple data structure that contains either 7-bit ASCII or binary data Date and time defined by 6 unsigned 16bit integers (year, month, day, hour, minute, second) This structure represents a color transform using tables with 16-bit precision. This type contains four processing elements: a 3 × 3 matrix (which shall be the identity matrix unless the input color space is PCSXYZ), a set of one-dimensional input tables, a multi-dimensional lookup table, and a set of one-dimensional output tables This structure represents a color transform using tables of 8-bit precision. This type contains four processing elements: a 3 × 3 matrix (which shall be the identity matrix unless the input color space is PCSXYZ), a set of one-dimensional input tables, a multi-dimensional lookup table, and a set of one-dimensional output tables. This structure represents a color transform. The type contains up to five processing elements which are stored in the AToBTag tag in the following order: a set of one-dimensional curves, a 3 × 3 matrix with offset terms, a set of one-dimensional curves, a multi-dimensional lookup table, and a set of one-dimensional output curves This structure represents a color transform. The type contains up to five processing elements which are stored in the BToATag in the following order: a set of one-dimensional curves, a 3 × 3 matrix with offset terms, a set of one-dimensional curves, a multi-dimensional lookup table, and a set of one-dimensional curves. This information refers only to the internal profile data and is meant to provide profile makers an alternative to the default measurement specifications This tag structure contains a set of records each referencing a multilingual Unicode string associated with a profile. Each string is referenced in a separate record with the information about what language and region the string is for. This structure represents a color transform, containing a sequence of processing elements. The processing elements contained in the structure are defined in the structure itself, allowing for a flexible structure. Currently supported processing elements are: a set of one dimensional curves, a matrix with offset terms, and a multidimensional lookup table (CLUT). Other processing element types may be added in the future. Each type of processing element may be contained any number of times in the structure. This type is a count value and array of structures that provide color coordinates for color names. For each named color, a PCS and optional device representation of the color are given. Both representations are 16-bit values and PCS values shall be relative colorimetric. The device representation corresponds to the header’s "data color space" field. This representation should be consistent with the "number of device coordinates" field in the namedColor2Type. If this field is 0, device coordinates are not provided. The PCS representation corresponds to the header's PCS field. The PCS representation is always provided. Color names are fixed-length, 32-byte fields including null termination. In order to maintain maximum portability, it is strongly recommended that special characters of the 7-bit ASCII set not be used. This type describes a one-dimensional curve by specifying one of a predefined set of functions using the parameters. This type is an array of structures, each of which contains information from the header fields and tags from the original profiles which were combined to create the final profile. The order of the structures is the order in which the profiles were combined and includes a structure for the final profile. This provides a description of the profile sequence from source to destination, typically used with the DeviceLink profile. This type is an array of structures, each of which contains information for identification of a profile used in a sequence. The purpose of this tag type is to provide a mechanism to relate physical colorant amounts with the normalized device codes produced by lut8Type, lut16Type, lutAToBType, lutBToAType or multiProcessElementsType tags so that corrections can be made for variation in the device without having to produce a new profile. The mechanism can be used by applications to allow users with relatively inexpensive and readily available instrumentation to apply corrections to individual output color channels in order to achieve consistent results. Array of signed floating point numbers with 1 sign bit, 15 value bits and 16 fractional bits The signatureType contains a 4-byte sequence. Sequences of less than four characters are padded at the end with spaces. Typically this type is used for registered tags that can be displayed on many development systems as a sequence of four characters. Simple ASCII text Array of unsigned floating point numbers with 16 value bits and 16 fractional bits Array of unsigned 16bit integers (ushort) Array of unsigned 32bit integers (uint) Array of unsigned 64bit integers (ulong) Array of unsigned 8bit integers (byte) This type represents a set of viewing condition parameters. 3 floating point values describing a XYZ color value REMOVED IN V4 - The textDescriptionType is a complex structure that contains three types of text description structures: 7-bit ASCII, Unicode and ScriptCode. Since no single standard method for specifying localizable character sets exists across the major platform vendors, including all three provides access for the major operating systems. The 7-bit ASCII description is to be an invariant, nonlocalizable name for consistent reference. It is preferred that both the Unicode and ScriptCode structures be properly localized. REMOVED IN V4 - This type contains the PostScript product name to which this profile corresponds and the names of the companion CRDs REMOVED IN V4 - The screeningType describes various screening parameters including screen frequency, screening angle, and spot shape REMOVED IN V4 - This type contains curves representing the under color removal and black generation and a text string which is a general description of the method used for the UCR and BG REMOVED IN V4 - This type is an array of structures each of which contains platform-specific information about the settings of the device for which this profile is valid. This type is not supported. REMOVED IN V2 - use instead. This type is not supported. Represents an error that happened while reading or writing a corrupt/invalid ICC profile Initializes a new instance of the class. The message that describes the error Initializes a new instance of the class. The message that describes the error The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified Represents an ICC profile The byte array to read the ICC profile from The backing file for the property ICC profile header Initializes a new instance of the class. Initializes a new instance of the class. The raw ICC profile data Initializes a new instance of the class. The profile header The actual profile data Initializes a new instance of the class by making a copy from another ICC profile. The other ICC profile, where the clone should be made from. is null.> Gets or sets the profile header Gets the actual profile data Calculates the MD5 hash value of an ICC profile The data of which to calculate the hash value The calculated hash Checks for signs of a corrupt profile. This is not an absolute proof of validity but should weed out most corrupt data. True if the profile is valid; False otherwise Converts this instance to a byte array. The Contains all values of an ICC profile header. Gets or sets the profile size in bytes (will be ignored when writing a profile). Gets or sets the preferred CMM (Color Management Module) type. Gets or sets the profiles version number. Gets or sets the type of the profile. Gets or sets the data colorspace. Gets or sets the profile connection space. Gets or sets the date and time this profile was created. Gets or sets the file signature. Should always be "acsp". Value will be ignored when writing a profile. Gets or sets the primary platform this profile as created for Gets or sets the profile flags to indicate various options for the CMM such as distributed processing and caching options. Gets or sets the device manufacturer of the device for which this profile is created. Gets or sets the model of the device for which this profile is created. Gets or sets the device attributes unique to the particular device setup such as media type. Gets or sets the rendering Intent. Gets or sets The normalized XYZ values of the illuminant of the PCS. Gets or sets profile creator signature. Gets or sets the profile ID (hash). Reads and parses ICC data from a byte array Reads an ICC profile The raw ICC data The read ICC profile Reads an ICC profile header The raw ICC data The read ICC profile header Reads the ICC profile tag data The raw ICC data The read ICC profile tag data The data of an ICC tag entry Initializes a new instance of the class. TagSignature will be Type Signature Initializes a new instance of the class. Type Signature Tag Signature Gets the type Signature Gets or sets the tag Signature Contains methods for writing ICC profiles. Writes the ICC profile into a byte array The ICC profile to write The ICC profile as a byte array A placeholder (might be used for future ICC versions) Initializes a new instance of the class. Number of input channels Number of output channels A CLUT (color lookup table) element to process data Initializes a new instance of the class. The color lookup table of this element Gets the color lookup table of this element A set of curves to process data Initializes a new instance of the class. An array with one dimensional curves Gets an array of one dimensional curves A placeholder (might be used for future ICC versions) Initializes a new instance of the class. Number of input channels Number of output channels A matrix element to process data Initializes a new instance of the class. Two dimensional matrix with size of Input-Channels x Output-Channels One dimensional matrix with size of Output-Channels x 1 Gets the two dimensional matrix with size of Input-Channels x Output-Channels Gets the one dimensional matrix with size of Output-Channels x 1 An element to process data Initializes a new instance of the class. The signature of this element Number of input channels Number of output channels Gets the signature of this element, Gets the number of input channels Gets the number of output channels. The chromaticity tag type provides basic chromaticity data and type of phosphors or colorants of a monitor to applications and utilities. Initializes a new instance of the class. Colorant Type Initializes a new instance of the class. Values per channel Initializes a new instance of the class. Colorant Type Tag Signature Initializes a new instance of the class. Values per channel Tag Signature Gets the number of channels Gets the colorant type Gets the values per channel This tag specifies the laydown order in which colorants will be printed on an n-colorant device. Initializes a new instance of the class. Colorant order numbers Initializes a new instance of the class. Colorant order numbers Tag Signature Gets the colorant order numbers The purpose of this tag is to identify the colorants used in the profile by a unique name and set of PCSXYZ or PCSLAB values to give the colorant an unambiguous value. Initializes a new instance of the class. Colorant Data Initializes a new instance of the class. Colorant Data Tag Signature Gets the colorant data This type contains the PostScript product name to which this profile corresponds and the names of the companion CRDs Initializes a new instance of the class. the PostScript product name the rendering intent 0 CRD name the rendering intent 1 CRD name the rendering intent 2 CRD name the rendering intent 3 CRD name Initializes a new instance of the class. the PostScript product name the rendering intent 0 CRD name the rendering intent 1 CRD name the rendering intent 2 CRD name the rendering intent 3 CRD name Tag Signature Gets the PostScript product name Gets the rendering intent 0 CRD name Gets the rendering intent 1 CRD name Gets the rendering intent 2 CRD name Gets the rendering intent 3 CRD name The type contains a one-dimensional table of double values. Initializes a new instance of the class. Initializes a new instance of the class. Gamma value Initializes a new instance of the class. Curve Data Initializes a new instance of the class. Tag Signature Initializes a new instance of the class. Gamma value Tag Signature Initializes a new instance of the class. Curve Data Tag Signature Gets the curve data Gets the gamma value. Only valid if is true Gets a value indicating whether the curve maps input directly to output. Gets a value indicating whether the curve is a gamma curve. The dataType is a simple data structure that contains either 7-bit ASCII or binary data, i.e. textType data or transparent bytes. Initializes a new instance of the class. The raw data Initializes a new instance of the class. The raw data True if the given data is 7bit ASCII encoded text Initializes a new instance of the class. The raw data True if the given data is 7bit ASCII encoded text Tag Signature Gets the raw Data Gets a value indicating whether the represents 7bit ASCII encoded text Gets the decoded as 7bit ASCII. If is false, returns null This type is a representation of the time and date. Initializes a new instance of the class. The DateTime value Initializes a new instance of the class. The DateTime value Tag Signature Gets the date and time value This type represents an array of doubles (from 32bit fixed point values). Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data This structure represents a color transform using tables with 16-bit precision. Initializes a new instance of the class. Input LUT CLUT Output LUT Initializes a new instance of the class. Input LUT CLUT Output LUT Tag Signature Initializes a new instance of the class. Conversion matrix (must be 3x3) Input LUT CLUT Output LUT Initializes a new instance of the class. Conversion matrix (must be 3x3) Input LUT CLUT Output LUT Tag Signature Gets the number of input channels Gets the number of output channels Gets the conversion matrix Gets the input lookup table Gets the color lookup table Gets the output lookup table This structure represents a color transform using tables with 8-bit precision. Initializes a new instance of the class. Input LUT CLUT Output LUT Initializes a new instance of the class. Input LUT CLUT Output LUT Tag Signature Initializes a new instance of the class. Conversion matrix (must be 3x3) Input LUT CLUT Output LUT Initializes a new instance of the class. Conversion matrix (must be 3x3) Input LUT CLUT Output LUT Tag Signature Gets the number of input channels Gets the number of output channels Gets the conversion matrix Gets the input lookup table Gets the color lookup table Gets the output lookup table This structure represents a color transform. Initializes a new instance of the class. B Curve Two dimensional conversion matrix (3x3) One dimensional conversion matrix (3x1) M Curve CLUT A Curve Initializes a new instance of the class. B Curve Two dimensional conversion matrix (3x3) One dimensional conversion matrix (3x1) M Curve CLUT A Curve Tag Signature Gets the number of input channels Gets the number of output channels Gets the two dimensional conversion matrix (3x3) Gets the one dimensional conversion matrix (3x1) Gets the color lookup table Gets the B Curve Gets the M Curve Gets the A Curve This structure represents a color transform. Initializes a new instance of the class. B Curve Two dimensional conversion matrix (3x3) One dimensional conversion matrix (3x1) M Curve CLUT A Curve Initializes a new instance of the class. B Curve Two dimensional conversion matrix (3x3) One dimensional conversion matrix (3x1) M Curve CLUT A Curve Tag Signature Gets the number of input channels Gets the number of output channels Gets the two dimensional conversion matrix (3x3) Gets the one dimensional conversion matrix (3x1) Gets the color lookup table Gets the B Curve Gets the M Curve Gets the A Curve The measurementType information refers only to the internal profile data and is meant to provide profile makers an alternative to the default measurement specifications. Initializes a new instance of the class. Observer XYZ Backing values Geometry Flare Illuminant Initializes a new instance of the class. Observer XYZ Backing values Geometry Flare Illuminant Tag Signature Gets the observer Gets the XYZ Backing values Gets the geometry Gets the flare Gets the illuminant This tag structure contains a set of records each referencing a multilingual string associated with a profile. Initializes a new instance of the class. Localized Text Initializes a new instance of the class. Localized Text Tag Signature Gets the localized texts This structure represents a color transform, containing a sequence of processing elements. Initializes a new instance of the class. Processing elements Initializes a new instance of the class. Processing elements Tag Signature Gets the number of input channels Gets the number of output channels Gets the processing elements The namedColor2Type is a count value and array of structures that provide color coordinates for color names. Initializes a new instance of the class. The named colors Initializes a new instance of the class. Prefix Suffix /// The named colors Initializes a new instance of the class. Vendor specific flags Prefix Suffix The named colors Initializes a new instance of the class. The named colors Tag Signature Initializes a new instance of the class. Prefix Suffix The named colors Tag Signature Initializes a new instance of the class. Vendor specific flags Prefix Suffix The named colors Tag Signature Gets the number of coordinates Gets the prefix Gets the suffix Gets the vendor specific flags Gets the named colors The parametricCurveType describes a one-dimensional curve by specifying one of a predefined set of functions using the parameters. Initializes a new instance of the class. The Curve Initializes a new instance of the class. The Curve Tag Signature Gets the Curve This type is an array of structures, each of which contains information from the header fields and tags from the original profiles which were combined to create the final profile. Initializes a new instance of the class. Profile Descriptions Initializes a new instance of the class. Profile Descriptions Tag Signature Gets the profile descriptions This type is an array of structures, each of which contains information for identification of a profile used in a sequence. Initializes a new instance of the class. Profile Identifiers Initializes a new instance of the class. Profile Identifiers Tag Signature Gets the profile identifiers The purpose of this tag type is to provide a mechanism to relate physical colorant amounts with the normalized device codes produced by lut8Type, lut16Type, lutAToBType, lutBToAType or multiProcessElementsType tags so that corrections can be made for variation in the device without having to produce a new profile. Initializes a new instance of the class. The Curves Initializes a new instance of the class. The Curves Tag Signature Gets the number of channels Gets the curves This type describes various screening parameters including screen frequency, screening angle, and spot shape. Initializes a new instance of the class. Screening flags Channel information Initializes a new instance of the class. Screening flags Channel information Tag Signature Gets the screening flags Gets the channel information Typically this type is used for registered tags that can be displayed on many development systems as a sequence of four characters. Initializes a new instance of the class. The Signature Initializes a new instance of the class. The Signature Tag Signature Gets the signature data The TextDescriptionType contains three types of text description. Initializes a new instance of the class. ASCII text Unicode text ScriptCode text Unicode Language-Code ScriptCode Code Initializes a new instance of the class. ASCII text Unicode text ScriptCode text Unicode Language-Code ScriptCode Code Tag Signature Gets the ASCII text Gets the Unicode text Gets the ScriptCode text Gets the Unicode Language-Code Gets the ScriptCode Code Performs an explicit conversion from to . The entry to convert The converted entry This is a simple text structure that contains a text string. Initializes a new instance of the class. The Text Initializes a new instance of the class. The Text Tag Signature Gets the Text This type contains curves representing the under color removal and black generation and a text string which is a general description of the method used for the UCR and BG. Initializes a new instance of the class. UCR (under color removal) curve values BG (black generation) curve values Description of the used UCR and BG method Initializes a new instance of the class. UCR (under color removal) curve values BG (black generation) curve values Description of the used UCR and BG method Tag Signature Gets the UCR (under color removal) curve values Gets the BG (black generation) curve values Gets a description of the used UCR and BG method This type represents an array of doubles (from 32bit values). Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data. This type represents an array of unsigned shorts. Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data This type represents an array of unsigned 32bit integers. Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data This type represents an array of unsigned 64bit integers. Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data This type represents an array of bytes. Initializes a new instance of the class. The array data Initializes a new instance of the class. The array data Tag Signature Gets the array data. This tag stores data of an unknown tag data entry Initializes a new instance of the class. The raw data of the entry Initializes a new instance of the class. The raw data of the entry Tag Signature Gets the raw data of the entry. This type represents a set of viewing condition parameters. Initializes a new instance of the class. XYZ values of Illuminant XYZ values of Surrounding Illuminant Initializes a new instance of the class. XYZ values of Illuminant XYZ values of Surrounding Illuminant Tag Signature Gets the XYZ values of illuminant. Gets the XYZ values of Surrounding Gets the illuminant. The XYZType contains an array of XYZ values. Initializes a new instance of the class. The XYZ numbers. Initializes a new instance of the class. The XYZ numbers Tag Signature Gets the XYZ numbers. Color Lookup Table Initializes a new instance of the class. The CLUT values The gridpoint count The data type of this CLUT Initializes a new instance of the class. The CLUT values The gridpoint count Initializes a new instance of the class. The CLUT values The gridpoint count Gets the values that make up this table Gets the CLUT data type (important when writing a profile) Gets the number of input channels Gets the number of output channels Gets the number of grid points per input channel Entry of ICC colorant table Initializes a new instance of the struct. Name of the colorant Initializes a new instance of the struct. Name of the colorant First PCS value Second PCS value Third PCS value Gets the colorant name. Gets the first PCS value. Gets the second PCS value. Gets the third PCS value. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. A string with a specific locale. Initializes a new instance of the struct. The culture will be The text value of this string Initializes a new instance of the struct. The culture will be The culture of this string The text value of this string Gets the text value. Gets the culture of text. Lookup Table Initializes a new instance of the struct. The LUT values Initializes a new instance of the struct. The LUT values Initializes a new instance of the struct. The LUT values Gets the values that make up this table A specific color with a name Initializes a new instance of the struct. Name of the color Coordinates of the color in the profiles PCS Coordinates of the color in the profiles Device-Space Gets the name of the color Gets the coordinates of the color in the profiles PCS Gets the coordinates of the color in the profiles Device-Space Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Position of an object within an ICC profile Initializes a new instance of the struct. Offset in bytes Size in bytes Gets the offset in bytes Gets the size in bytes Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. ICC Profile description Initializes a new instance of the struct. Device Manufacturer Device Model Device Attributes Technology Information Device Manufacturer Info Device Model Info Gets the device manufacturer. Gets the device model. Gets the device attributes. Gets the technology information. Gets the device manufacturer info. Gets the device model info. ICC Profile ID A profile ID with all values set to zero Initializes a new instance of the struct. Part 1 of the ID Part 2 of the ID Part 3 of the ID Part 4 of the ID Gets the first part of the ID. Gets the second part of the ID. Gets the third part of the ID. Gets the fourth part of the ID. Gets a value indicating whether the ID is set or just consists of zeros. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Description of a profile within a sequence. Initializes a new instance of the struct. ID of the profile Description of the profile Gets the ID of the profile. Gets the description of the profile. Associates a normalized device code with a measurement value Initializes a new instance of the struct. Device Code Measurement Value Gets the device code Gets the measurement value Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. A single channel of a Initializes a new instance of the struct. Screen frequency Angle in degrees Spot shape Gets the screen frequency. Gets the angle in degrees. Gets the spot shape Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Entry of ICC tag table Initializes a new instance of the struct. Signature of the tag Offset of entry in bytes Size of entry in bytes Gets the signature of the tag. Gets the offset of entry in bytes. Gets the size of entry in bytes. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Represents the ICC profile version number. Initializes a new instance of the struct. The major version number. The minor version number. The patch version number. Gets the major version number. Gets the minor version number. Gets the patch number. Represents an IPTC profile providing access to the collection of values. Initializes a new instance of the class. Initializes a new instance of the class. The byte array to read the iptc profile from. Initializes a new instance of the class by making a copy from another IPTC profile. The other IPTC profile, from which the clone should be made from. Gets the byte data of the IPTC profile. Gets the values of this iptc profile. Returns all values with the specified tag. The tag of the iptc value. The values found with the specified tag. Removes all values with the specified tag. The tag of the iptc value to remove. True when the value was found and removed. Removes values with the specified tag and value. The tag of the iptc value to remove. The value of the iptc item to remove. True when the value was found and removed. Changes the encoding for all the values. The encoding to use when storing the bytes. Sets the value for the specified tag. The tag of the iptc value. The encoding to use when storing the bytes. The value. Indicates if length restrictions from the specification should be followed strictly. Defaults to true. Makes sure the datetime is formatted according to the iptc specification. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. A time value will be formatted as HHMMSS±HHMM, e.g. "090000+0200" for 9 o'clock Berlin time, two hours ahead of UTC. The tag of the iptc value. The datetime. Sets the value of the specified tag. The tag of the iptc value. The value. Indicates if length restrictions from the specification should be followed strictly. Defaults to true. Updates the data of the profile. Provides enumeration of all IPTC tags relevant for images. Unknown. Record version identifying the version of the Information Interchange Model. Not repeatable. Max length is 2. Object type, not repeatable. Max Length is 67. Object attribute. Max length is 68. Object Name, not repeatable. Max length is 64. Edit status, not repeatable. Max length is 64. Editorial update, not repeatable. Max length is 2. Urgency, not repeatable. Max length is 2. Subject Reference. Max length is 236. Category, not repeatable. Max length is 3. Supplemental categories. Max length is 32. Fixture identifier, not repeatable. Max length is 32. Keywords. Max length is 64. Location code. Max length is 3. Location name. Max length is 64. Release date. Format should be CCYYMMDD. Not repeatable, max length is 8. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. Release time. Format should be HHMMSS±HHMM. Not repeatable, max length is 11. A time value will be formatted as HHMMSS±HHMM, e.g. "090000+0200" for 9 o'clock Berlin time, two hours ahead of UTC. Expiration date. Format should be CCYYMMDD. Not repeatable, max length is 8. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. Expiration time. Format should be HHMMSS±HHMM. Not repeatable, max length is 11. A time value will be formatted as HHMMSS±HHMM, e.g. "090000+0200" for 9 o'clock Berlin time, two hours ahead of UTC. Special instructions, not repeatable. Max length is 256. Action advised, not repeatable. Max length is 2. Reference service. Max length is 10. Reference date. Format should be CCYYMMDD. Not repeatable, max length is 8. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. ReferenceNumber. Max length is 8. Created date. Format should be CCYYMMDD. Not repeatable, max length is 8. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. Created time. Format should be HHMMSS±HHMM. Not repeatable, max length is 11. A time value will be formatted as HHMMSS±HHMM, e.g. "090000+0200" for 9 o'clock Berlin time, two hours ahead of UTC. Digital creation date. Format should be CCYYMMDD. Not repeatable, max length is 8. A date will be formatted as CCYYMMDD, e.g. "19890317" for 17 March 1989. Digital creation time. Format should be HHMMSS±HHMM. Not repeatable, max length is 11. A time value will be formatted as HHMMSS±HHMM, e.g. "090000+0200" for 9 o'clock Berlin time, two hours ahead of UTC. Originating program, not repeatable. Max length is 32. Program version, not repeatable. Max length is 10. Object cycle, not repeatable. Max length is 1. Byline. Max length is 32. Byline title. Max length is 32. City, not repeatable. Max length is 32. Sub location, not repeatable. Max length is 32. Province/State, not repeatable. Max length is 32. Country code, not repeatable. Max length is 3. Country, not repeatable. Max length is 64. Original transmission reference, not repeatable. Max length is 32. Headline, not repeatable. Max length is 256. Credit, not repeatable. Max length is 32. Source, not repeatable. Max length is 32. Copyright notice, not repeatable. Max length is 128. Contact. Max length 128. Caption, not repeatable. Max length is 2000. Local caption. Caption writer. Max length is 32. Image type, not repeatable. Max length is 2. Image orientation, not repeatable. Max length is 1. Custom field 1 Custom field 2 Custom field 3 Custom field 4 Custom field 5 Custom field 6 Custom field 7 Custom field 8 Custom field 9 Custom field 10 Custom field 11 Custom field 12 Custom field 13 Custom field 14 Custom field 15 Custom field 16 Custom field 17 Custom field 18 Custom field 19 Custom field 20 Extension methods for IPTC tags. Maximum length of the IPTC value with the given tag according to the specification. The tag to check the max length for. The maximum length. Determines if the given tag can be repeated according to the specification. The tag to check. True, if the tag can occur multiple times. Determines if the tag is a datetime tag which needs to be formatted as CCYYMMDD. The tag to check. True, if its a datetime tag. Determines if the tag is a time tag which need to be formatted as HHMMSS±HHMM. The tag to check. True, if its a time tag. Represents a single value of the IPTC profile. Gets or sets the encoding to use for the Value. Gets the tag of the iptc value. Gets or sets a value indicating whether to be enforce value length restrictions according to the specification. Gets or sets the value. Gets the length of the value. Determines whether the specified object is equal to the current . The object to compare this with. True when the specified object is equal to the current . Determines whether the specified iptc value is equal to the current . The iptc value to compare this with. True when the specified iptc value is equal to the current . Serves as a hash of this type. A hash code for the current instance. Converts this instance to a byte array. A array. Returns a string that represents the current value. A string that represents the current value. Returns a string that represents the current value with the specified encoding. The encoding to use. A string that represents the current value with the specified encoding. Represents an XMP profile, providing access to the raw XML. See for the full specification. Initializes a new instance of the class. Initializes a new instance of the class. The UTF8 encoded byte array to read the XMP profile from. Initializes a new instance of the class by making a copy from another XMP profile. The other XMP profile, from which the clone should be made from. Gets the XMP raw data byte array. Gets the raw XML document containing the XMP profile. The Convert the content of this into a byte array. The A delegate to be executed on a . The pixel type. A delegate to be executed on two instances of . The first pixel type. The second pixel type. A delegate to be executed on three instances of . The first pixel type. The second pixel type. The third pixel type. Provides efficient access the pixel buffers of an . The pixel type. Gets the width of the backing . Gets the height of the backing . Gets the representation of the pixels as a of contiguous memory at row beginning from the first pixel on that row. The row index. The . Thrown when row index is out of range. Helper methods for packing and unpacking floating point values Packs a into an The float to pack The Packs an into a The integer to pack. The Unpacks a into a . The value. The . Maps the position of number types in memory The float. The integer. The unsigned integer. This interface exists for ensuring signature compatibility to MonoGame and XNA packed color types. The packed format. uint, long, float. Gets or sets the packed representation of the value. An interface that represents a generic pixel type. The naming convention of each pixel format is to order the color components from least significant to most significant, reading from left to right. For example in the pixel format the R component is the least significant byte, and the A component is the most significant. The type implementing this interface Creates a instance for this pixel type. This method is not intended to be consumed directly. Use instead. The instance. A base interface for all pixels, defining the mandatory operations to be implemented by a pixel type. Initializes the pixel instance from a generic ("scaled") . The vector to load the pixel from. Expands the pixel into a generic ("scaled") representation with values scaled and clamped between 0 and 1. The vector components are typically expanded in least to greatest significance order. The . Initializes the pixel instance from a which is specific to the current pixel type. The vector to load the pixel from. Expands the pixel into a which is specific to the current pixel type. The vector components are typically expanded in least to greatest significance order. The . Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Convert the pixel instance into representation. The reference to the destination pixel Initializes the pixel instance from an value. The value. Initializes the pixel instance from an value. The value. Enumerates the various alpha composition modes. Returns the destination over the source. Returns the source colors. Returns the source over the destination. The source where the destination and source overlap. The destination where the destination and source overlap. The destination where the source does not overlap it. The source where they don't overlap otherwise dest in overlapping parts. The destination over the source. The destination where the destination and source overlap. The source where the destination and source overlap. The clear. Clear where they overlap. Provides enumeration of the alpha value transparency behavior of a pixel format. Indicates that the pixel format does not contain an alpha channel. Indicates that the transparency behavior is premultiplied. Each color is first scaled by the alpha value. The alpha value itself is the same in both straight and premultiplied alpha. Typically, no color channel value is greater than the alpha channel value. If a color channel value in a premultiplied format is greater than the alpha channel, the standard source-over blending math results in an additive blend. Indicates that the transparency behavior is not premultiplied. The alpha channel indicates the transparency of the color. Collection of Porter Duff alpha blending functions applying different composition models. These functions are designed to be a general solution for all color cases, that is, they take in account the alpha value of both the backdrop and source, and there's no need to alpha-premultiply neither the backdrop nor the source. Note there are faster functions for when the backdrop color is known to be opaque A pixel blender that implements the "NormalSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplySrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlaySrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightSrc" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplySrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlaySrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightSrcAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplySrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlaySrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightSrcOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplySrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlaySrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightSrcIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplySrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlaySrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightSrcOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightDest" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightDestAtop" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightDestOver" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightDestIn" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightDestOut" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightClear" composition equation. Gets the static instance of this blender. A pixel blender that implements the "NormalXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "MultiplyXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "AddXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "SubtractXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "ScreenXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "DarkenXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "LightenXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "OverlayXor" composition equation. Gets the static instance of this blender. A pixel blender that implements the "HardLightXor" composition equation. Gets the static instance of this blender. Collection of Porter Duff Color Blending and Alpha Composition Functions. These functions are designed to be a general solution for all color cases, that is, they take in account the alpha value of both the backdrop and source, and there's no need to alpha-premultiply neither the backdrop nor the source. Note there are faster functions for when the backdrop color is known to be opaque Returns the result of the "Normal" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Multiply" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Add" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Subtract" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Screen" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Darken" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Lighten" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "Overlay" compositing equation. The backdrop vector. The source vector. The . Returns the result of the "HardLight" compositing equation. The backdrop vector. The source vector. The . Helper function for Overlay andHardLight modes Backdrop color element Source color element Overlay value Returns the result of the "Over" compositing equation. The destination vector. The source vector. The amount to blend. Range 0..1 The . Returns the result of the "Atop" compositing equation. The destination vector. The source vector. The amount to blend. Range 0..1 The . Returns the result of the "In" compositing equation. The destination vector. The source vector. The . Returns the result of the "Out" compositing equation. The destination vector. The source vector. The . Returns the result of the "XOr" compositing equation. The destination vector. The source vector. The . Returns the result of the "NormalSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "NormalXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplySrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "MultiplyXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "AddXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "SubtractXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "ScreenXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "DarkenXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "LightenXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlaySrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "OverlayXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrc" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDest" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestAtop" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestOver" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestIn" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestOut" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightXor" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightClear" compositing equation. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrc" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightSrcOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDest" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestAtop" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestOver" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestIn" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightDestOut" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightClear" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Returns the result of the "HardLightXor" compositing equation. The pixel format. The backdrop vector. The source vector. The source opacity. Range 0..1 The . Abstract base class for calling pixel composition functions The type of the pixel Blend 2 pixels together. The background color. The source color. A value between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. The final pixel value after composition. Blends 2 rows together the pixel format of the source span to use internally the destination span the background span the source span A value between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. Blends 2 rows together to use internally the destination span the background span the source span A span with values between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. Blends 2 rows together the pixel format of the source span to use internally the destination span the background span the source span A span with values between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. Blend 2 rows together. destination span the background span the source span A value between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. Blend 2 rows together. destination span the background span the source span A span with values between 0 and 1 indicating the weight of the second source vector. At amount = 0, "background" is returned, at amount = 1, "source" is returned. Enumerates the various color blending modes. Default blending mode, also known as "Normal" or "Alpha Blending" Blends the 2 values by multiplication. Blends the 2 values by addition. Blends the 2 values by subtraction. Multiplies the complements of the backdrop and source values, then complements the result. Selects the minimum of the backdrop and source values. Selects the max of the backdrop and source values. Multiplies or screens the values, depending on the backdrop vector values. Multiplies or screens the colors, depending on the source value. Flags responsible to select additional operations which could be efficiently applied in or knowing the pixel type. No special operation is selected Select and instead the standard (non scaled) variants. Enable alpha premultiplication / unpremultiplication Enable SRGB companding (defined in ). Extension and utility methods for . Applies the union of and , if is true, returns unmodified otherwise. and should be always used together! Packed pixel type containing a single 8-bit normalized alpha value. Ranges from [0, 0, 0, 0] to [0, 0, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The alpha component. Initializes a new instance of the struct. The alpha component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Compares an object with the packed vector. The object to compare. True if the object is equal to the packed vector. Compares another A8 packed vector with the packed vector. The A8 packed vector to compare. True if the packed vectors are equal. Gets a string representation of the packed vector. A string representation of the packed vector. Packs a into a byte. The float containing the value to pack. The containing the packed values. Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in alpha, red, green, and blue order (least significant to most significant byte). Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the alpha component. Gets or sets the blue component. Gets or sets the green component. Gets or sets the red component. The maximum byte value. The half vector value. Initializes a new instance of the struct. The red component. The green component. The blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The packed value. Gets or sets the packed representation of the Abgrb32 struct. Converts an to . The . The . Converts a to . The . The . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Gets a string representation of the packed vector. A string representation of the packed vector. Packs the four floats into a color. The x-component The y-component The z-component The w-component Packs a into a uint. The vector containing the values to pack. Packs a into a color. The vector containing the values to pack. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in alpha, red, green, and blue order (least significant to most significant byte). Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the alpha component. Gets or sets the red component. Gets or sets the green component. Gets or sets the blue component. The maximum byte value. The half vector value. Initializes a new instance of the struct. The red component. The green component. The blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The packed value. Gets or sets the packed representation of the Argb32 struct. Converts an to . The . The . Converts a to . The . The . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Gets a string representation of the packed vector. A string representation of the packed vector. Packs the four floats into a color. The x-component The y-component The z-component The w-component Packs a into a uint. The vector containing the values to pack. Packs a into a color. The vector containing the values to pack. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Pixel type containing three 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in blue, green, red order (least significant to most significant byte). Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. The blue component. The green component. The red component. Initializes a new instance of the struct. The red component. The green component. The blue component. Converts an to . The . The . Converts a to . The . The . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing unsigned normalized values ranging from 0 to 1. The x and z components use 5 bits, and the y component uses 6 bits. Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component The y-component The z-component Initializes a new instance of the struct. The vector containing the components for the packed value. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The vector components are typically expanded in least to greatest significance order. The . Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in blue, green, red, and alpha order (least significant to most significant byte). The format is binary compatible with System.Drawing.Imaging.PixelFormat.Format32bppArgb Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the blue component. Gets or sets the green component. Gets or sets the red component. Gets or sets the alpha component. The maximum byte value. The half vector value. Initializes a new instance of the struct. The red component. The green component. The blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Gets or sets the packed representation of the Bgra32 struct. Converts an to . The . The . Converts a to . The . The . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Packs a into a color. The vector containing the values to pack. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing unsigned normalized values, ranging from 0 to 1, using 4 bits each for x, y, z, and w. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component The y-component The z-component The w-component Initializes a new instance of the struct. The vector containing the components for the packed vector. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Packed pixel type containing unsigned normalized values ranging from 0 to 1. The x , y and z components use 5 bits, and the w component uses 1 bit. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component The y-component The z-component The w-component Initializes a new instance of the struct. The vector containing the components for the packed vector. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit unsigned integer values, ranging from 0 to 255. Ranges from [0, 0, 0, 0] to [255, 255, 255, 255] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. A vector containing the initial values for the components of the Byte4 structure. Initializes a new instance of the struct. The x-component The y-component The z-component The w-component Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Packs a vector into a uint. The vector containing the values to pack. The containing the packed values. Provides optimized overrides for bulk operations. Packed pixel type containing a single 16 bit floating point value. Ranges from [-1, 0, 0, 1] to [1, 0, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The single component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The . Provides optimized overrides for bulk operations. Packed pixel type containing two 16-bit floating-point values. Ranges from [-1, -1, 0, 1] to [1, 1, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. Initializes a new instance of the struct. A vector containing the initial values for the components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The . Provides optimized overrides for bulk operations. Packed pixel type containing four 16-bit floating-point values. Ranges from [-1, -1, -1, -1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. The z-component. The w-component. Initializes a new instance of the struct. A vector containing the initial values for the components Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Packs a into a . The vector containing the values to pack. The containing the packed values. Provides optimized overrides for bulk operations. Packed pixel type containing a single 16-bit normalized luminance value. Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The luminance component Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing a single 8-bit normalized luminance value. Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The luminance component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing two 8-bit normalized values representing luminance and alpha. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the luminance component. Gets or sets the alpha component. Initializes a new instance of the struct. The luminance component. The alpha component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing two 16-bit normalized values representing luminance and alpha. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the luminance component. Gets or sets the alpha component. Initializes a new instance of the struct. The luminance component. The alpha component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing two 8-bit signed normalized values, ranging from −1 to 1. Ranges from [-1, -1, 0, 1] to [1, 1, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The vector components are typically expanded in least to greatest significance order. The . Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit signed normalized values, ranging from −1 to 1. Ranges from [-1, -1, -1, -1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. The z-component. The w-component. Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Packed pixel type containing two 16-bit signed normalized values, ranging from −1 to 1. Ranges from [-1, -1, 0, 1] to [1, 1, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The vector components are typically expanded in least to greatest significance order. The . Provides optimized overrides for bulk operations. Packed pixel type containing four 16-bit signed normalized values, ranging from −1 to 1. Ranges from [-1, -1, -1, -1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. The z-component. The w-component. Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Pixel type containing three 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in red, green, blue order (least significant to most significant byte). Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. The red component. The green component. The blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. Converts an to . The . The . Converts a to . The . The . Allows the implicit conversion of an instance of to a . The instance of to convert. An instance of . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Packs a into a color. The vector containing the values to pack. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing three 16-bit unsigned normalized values ranging from 0 to 635535. Ranges from [0, 0, 0, 1] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the red component. Gets or sets the green component. Gets or sets the blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing four 8-bit unsigned normalized values ranging from 0 to 255. The color components are stored in red, green, blue, and alpha order (least significant to most significant byte). Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Provides optimized overrides for bulk operations. implementation optimized for . Gets or sets the red component. Gets or sets the green component. Gets or sets the blue component. Gets or sets the alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The vector containing the components for the packed vector. Initializes a new instance of the struct. The packed value. Gets or sets the packed representation of the Rgba32 struct. Gets or sets the RGB components of this struct as Gets or sets the RGB components of this struct as reverting the component order. Converts an to . The . The . Converts a to . The . The . Allows the implicit conversion of an instance of to a . The instance of to convert. An instance of . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Creates a new instance of the struct from the given hexadecimal string. The hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. The . Attempts to creates a new instance of the struct from the given hexadecimal string. The hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. When this method returns, contains the equivalent of the hexadecimal input. The . Converts the value of this instance to a hexadecimal string. A hexadecimal string representation of the value. Packs a into a color returning a new instance as a result. The vector containing the values to pack. The Packs the four floats into a color. The x-component The y-component The z-component The w-component Packs a into a uint. The vector containing the values to pack. Packs a into a color. The vector containing the values to pack. Converts the specified hex value to an rrggbbaa hex value. The hex value to convert. A rrggbbaa hex value. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Packed pixel type containing four 16-bit unsigned normalized values ranging from 0 to 65535. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Provides optimized overrides for bulk operations. Gets or sets the red component. Gets or sets the green component. Gets or sets the blue component. Gets or sets the alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Initializes a new instance of the struct. A structure of 4 bytes in RGBA byte order. Initializes a new instance of the struct. A structure of 4 bytes in BGRA byte order. Initializes a new instance of the struct. A structure of 4 bytes in ARGB byte order. Initializes a new instance of the struct. A structure of 4 bytes in ABGR byte order. Initializes a new instance of the struct. A structure of 3 bytes in RGB byte order. Initializes a new instance of the struct. A structure of 3 bytes in BGR byte order. Initializes a new instance of the struct. The . Gets or sets the RGB components of this struct as . Converts an to . The . The . Converts a to . The . The . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Convert to . The . Convert to . The . Convert to . The . Convert to . The . Convert to . The . Convert to . The . Provides optimized overrides for bulk operations. Packed pixel type containing two 16-bit unsigned normalized values ranging from 0 to 1. Ranges from [0, 0, 0, 1] to [1, 1, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component The y-component Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The vector components are typically expanded in least to greatest significance order. The . Provides optimized overrides for bulk operations. Packed vector type containing unsigned normalized values ranging from 0 to 1. The x, y and z components use 10 bits, and the w component uses 2 bits. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component The y-component The z-component The w-component Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Provides optimized overrides for bulk operations. Unpacked pixel type containing four 32-bit floating-point values typically ranging from 0 to 1. The color components are stored in red, green, blue, and alpha order. Ranges from [0, 0, 0, 0] to [1, 1, 1, 1] in vector form. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. implementation optimized for . Gets or sets the red component. Gets or sets the green component. Gets or sets the blue component. Gets or sets the alpha component. Initializes a new instance of the struct. The red component. The green component. The blue component. The alpha component. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Creates a new instance of the struct. The hexadecimal representation of the combined color components arranged in rgb, rgba, rrggbb, or rrggbbaa format to match web syntax. The . Converts the value of this instance to a hexadecimal string. A hexadecimal string representation of the value. Provides optimized overrides for bulk operations. Packed pixel type containing two 16-bit signed integer values. Ranges from [-32767, -32767, 0, 1] to [32767, 32767, 0, 1] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. Initializes a new instance of the struct. The vector containing the component values. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Expands the packed representation into a . The vector components are typically expanded in least to greatest significance order. The . Provides optimized overrides for bulk operations. Packed pixel type containing four 16-bit signed integer values. Ranges from [-37267, -37267, -37267, -37267] to [37267, 37267, 37267, 37267] in vector form. Provides optimized overrides for bulk operations. Initializes a new instance of the struct. The x-component. The y-component. The z-component. The w-component. Initializes a new instance of the struct. A vector containing the initial values for the components. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the parameter is not equal to the parameter; otherwise, false. Gets the hash code for the current instance. Hash code for the instance. A stateless class implementing Strategy Pattern for batched pixel-data conversion operations for pixel buffers of type . The pixel format. Provides access to pixel blenders Gets the global instance for the pixel type Gets the pixel type info for the given . The . Bulk version of converting 'sourceVectors.Length' pixels into 'destinationColors'. The method is DESTRUCTIVE altering the contents of . The destructive behavior is a design choice for performance reasons. In a typical use case the contents of are abandoned after the conversion. A to configure internal operations The to the source vectors. The to the destination colors. The to apply during the conversion Bulk version of converting 'sourceVectors.Length' pixels into 'destinationColors'. The method is DESTRUCTIVE altering the contents of . The destructive behavior is a design choice for performance reasons. In a typical use case the contents of are abandoned after the conversion. A to configure internal operations The to the source vectors. The to the destination colors. Bulk version of converting 'sourceColors.Length' pixels into 'destinationVectors'. A to configure internal operations The to the source colors. The to the destination vectors. The to apply during the conversion Bulk version of converting 'sourceColors.Length' pixels into 'destinationVectors'. A to configure internal operations The to the source colors. The to the destination vectors. Bulk operation that copies the to in format. The destination pixel type. A to configure internal operations. The to the source pixels. The to the destination pixels. Bulk operation that copies the to in format. The destination pixel type. A to configure internal operations. The to the source pixels. The to the destination pixels. Bulk operation that packs 3 seperate RGB channels to . The destination must have a padding of 3. A to configure internal operations. A to the red values. A to the green values. A to the blue values. A to the destination pixels. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Converts all pixels in 'source` span of into a span of -s. A to configure internal operations. The source of data. The to the destination pixels. A helper for that expects a byte span. The layout of the data in 'sourceBytes' must be compatible with layout. A to configure internal operations. The to the source bytes. The to the destination pixels. The number of pixels to convert. Converts all pixels of the 'sourcePixels` span to a span of -s. A to configure internal operations The span of source pixels The destination span of data. A helper for that expects a byte span as destination. The layout of the data in 'destBytes' must be compatible with layout. A to configure internal operations The to the source pixels. The to the destination bytes. The number of pixels to convert. Find an instance of the pixel blender. the blending and composition to apply A . Find an instance of the pixel blender. The color blending mode to apply The alpha composition mode to apply A . Contains optimized implementations for conversion between pixel formats. Implementations are based on ideas in: https://github.com/dotnet/coreclr/blob/master/src/System.Private.CoreLib/shared/System/Buffers/Binary/Reader.cs#L84 The JIT can detect and optimize rotation idioms ROTL (Rotate Left) and ROTR (Rotate Right) emitting efficient CPU instructions: https://github.com/dotnet/coreclr/pull/1830 Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Optimized converters from . Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Converts a representing a collection of pixels to a representing a collection of pixels. Helper class for (bulk) conversion of buffers to/from other buffer types. Contains Apply modifiers used requested by ToVector4() conversion. Apply modifiers used requested by FromVector4() conversion. Provides default implementations for batched to/from conversion. WARNING: The methods prefixed with "Unsafe" are operating without bounds checking and input validation! Input validation is the responsibility of the caller! Provides efficient implementations for batched to/from conversion. which is applicable for -compatible pixel types where returns the same scaled result as . The method is works by internally converting to a therefore it's not applicable for that type! It's not worth to bother the transitive pixel conversion method below this limit. The value depends on the actual gain brought by the SIMD characteristics of the executing CPU and JIT. Provides an efficient default implementation for The method works by internally converting to a therefore it's not applicable for that type! Provides an efficient default implementation for The method is works by internally converting to a therefore it's not applicable for that type! Enumerates the RGBA (red, green, blue, alpha) color components. The red component. The green component. The blue component. The alpha component. A structure encapsulating a 5x4 matrix used for transforming the color and alpha components of an image. Value at row 1, column 1 of the matrix. Value at row 1, column 2 of the matrix. Value at row 1, column 3 of the matrix. Value at row 1, column 4 of the matrix. Value at row 2, column 1 of the matrix. Value at row 2, column 2 of the matrix. Value at row 2, column 3 of the matrix. Value at row 2, column 4 of the matrix. Value at row 3, column 1 of the matrix. Value at row 3, column 2 of the matrix. Value at row 3, column 3 of the matrix. Value at row 3, column 4 of the matrix. Value at row 4, column 1 of the matrix. Value at row 4, column 2 of the matrix. Value at row 4, column 3 of the matrix. Value at row 4, column 4 of the matrix. Value at row 5, column 1 of the matrix. Value at row 5, column 2 of the matrix. Value at row 5, column 3 of the matrix. Value at row 5, column 4 of the matrix. Initializes a new instance of the struct. The value at row 1, column 1 of the matrix. The value at row 1, column 2 of the matrix. The value at row 1, column 3 of the matrix. The value at row 1, column 4 of the matrix. The value at row 2, column 1 of the matrix. The value at row 2, column 2 of the matrix. The value at row 2, column 3 of the matrix. The value at row 2, column 4 of the matrix. The value at row 3, column 1 of the matrix. The value at row 3, column 2 of the matrix. The value at row 3, column 3 of the matrix. The value at row 3, column 4 of the matrix. The value at row 4, column 1 of the matrix. The value at row 4, column 2 of the matrix. The value at row 4, column 3 of the matrix. The value at row 4, column 4 of the matrix. The value at row 5, column 1 of the matrix. The value at row 5, column 2 of the matrix. The value at row 5, column 3 of the matrix. The value at row 5, column 4 of the matrix. Gets the multiplicative identity matrix. Gets a value indicating whether the matrix is the identity matrix. Adds two matrices together. The first source matrix. The second source matrix. The resulting matrix. Subtracts the second matrix from the first. The first source matrix. The second source matrix. The result of the subtraction. Returns a new matrix with the negated elements of the given matrix. The source matrix. The negated matrix. Multiplies a matrix by another matrix. The first source matrix. The second source matrix. The result of the multiplication. Multiplies a matrix by a scalar value. The source matrix. The scaling factor. The scaled matrix. Returns a boolean indicating whether the given two matrices are equal. The first matrix to compare. The second matrix to compare. True if the given matrices are equal; False otherwise. Returns a boolean indicating whether the given two matrices are not equal. The first matrix to compare. The second matrix to compare. True if the given matrices are equal; False otherwise. Represents a complex number, where the real and imaginary parts are stored as values. This is a more efficient version of the type. The real part of the complex number The imaginary part of the complex number Initializes a new instance of the struct. The real part in the complex number. The imaginary part in the complex number. Performs the multiplication operation between a instance and a scalar. The value to multiply. The scalar to use to multiply the value. The result Performs the multiplication operation between a instance and a . The value to multiply. The instance to use to multiply the value. The result Performs the multiplication operation between a instance and a . The value to multiply. The instance to use to multiply the value. The result A vector with 4 values of type . The real part of the complex vector The imaginary part of the complex number Sums the values in the input to the current instance The input to sum Performs a weighted sum on the current instance according to the given parameters The 'a' parameter, for the real component The 'b' parameter, for the imaginary component The resulting value Represents a dense matrix with arbitrary elements. Components that are adjacent in a column of the matrix are adjacent in the storage array. The components are said to be stored in column major order. The type of elements in the matrix. The 1D representation of the dense matrix. Gets the number of columns in the dense matrix. Gets the number of rows in the dense matrix. Gets the size of the dense matrix. Gets the number of items in the array. Initializes a new instance of the struct. The length of each side in the matrix. Initializes a new instance of the struct. The number of columns. The number of rows. Initializes a new instance of the struct. The 2D array to provide access to. Gets a span wrapping the . Gets or sets the item at the specified position. The row-coordinate of the item. Must be greater than or equal to zero and less than the height of the array. The column-coordinate of the item. Must be greater than or equal to zero and less than the width of the array. The at the specified position. Performs an implicit conversion from a to a . The source array. The representation on the source data. Performs an implicit conversion from a to a . The source array. The representation on the source data. Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Transposes the rows and columns of the dense matrix. The . Fills the matrix with the given value The value to fill each item with Clears the matrix setting each value to the default value for the element type Checks the coordinates to ensure they are within bounds. The y-coordinate of the item. Must be greater than zero and smaller than the height of the matrix. The x-coordinate of the item. Must be greater than zero and smaller than the width of the matrix. Thrown if the coordinates are not within the bounds of the array. Represents a number that can be expressed as a fraction. This is a very simplified implementation of a rational number designed for use with metadata only. Initializes a new instance of the struct. The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. The number below the line in a vulgar fraction; a divisor. Gets the numerator of a number. Gets the denominator of a number. Gets a value indicating whether this instance is indeterminate. Gets a value indicating whether this instance is an integer (n, 1) Gets a value indicating whether this instance is equal to negative infinity (-1, 0) Gets a value indicating whether this instance is equal to positive infinity (1, 0) Gets a value indicating whether this instance is equal to 0 (0, 1) Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. An object that supplies culture-specific formatting information. The Create a new instance of the struct from a double value. The to create the instance from. Whether to use the best possible precision when parsing the value. Finds the greatest common divisor of two values. The first value The second value The Simplifies the Extension methods for the struct. Creates a translation matrix from the given vector. The translation position. A translation matrix. Creates a scale matrix that is offset by a given center point. Value to scale by on the X-axis. Value to scale by on the Y-axis. The center point. A scaling matrix. Creates a scale matrix from the given vector scale. The scale to use. A scaling matrix. Creates a scale matrix from the given vector scale with an offset from the given center point. The scale to use. The center offset. A scaling matrix. Creates a scale matrix that scales uniformly with the given scale with an offset from the given center. The uniform scale to use. The center offset. A scaling matrix. Creates a skew matrix from the given angles in degrees. The X angle, in degrees. The Y angle, in degrees. A skew matrix. Creates a skew matrix from the given angles in radians and a center point. The X angle, in radians. The Y angle, in radians. The center point. A skew matrix. Creates a skew matrix from the given angles in degrees and a center point. The X angle, in degrees. The Y angle, in degrees. The center point. A skew matrix. Creates a rotation matrix using the given rotation in degrees. The amount of rotation, in degrees. A rotation matrix. Creates a rotation matrix using the given rotation in radians and a center point. The amount of rotation, in radians. The center point. A rotation matrix. Creates a rotation matrix using the given rotation in degrees and a center point. The amount of rotation, in degrees. The center point. A rotation matrix. Represents an integral number. Initializes a new instance of the struct. The value of the number. Initializes a new instance of the struct. The value of the number. Converts the specified to an instance of this type. The value. Converts the specified to an instance of this type. The value. Converts the specified to an instance of this type. The value. Converts the specified to a . The to convert. Converts the specified to a . The to convert. Converts the specified to a . The to convert. Determines whether the specified instances are considered equal. The first to compare. The second to compare. Determines whether the specified instances are not considered equal. The first to compare. The second to compare. Determines whether the first is more than the second . The first to compare. The second to compare. Determines whether the first is less than the second . The first to compare. The second to compare. Determines whether the first is more than or equal to the second . The first to compare. The second to compare. Determines whether the first is less than or equal to the second . The first to compare. The second to compare. Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. An object that supplies culture-specific formatting information. The string representation of the value of this instance, which consists of a sequence of digits ranging from 0 to 9, without a sign or leading zeros. Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional plane. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has X and Y values set to zero. Initializes a new instance of the struct. The horizontal and vertical position of the point. Initializes a new instance of the struct. The horizontal position of the point. The vertical position of the point. Initializes a new instance of the struct from the given . The size. Gets or sets the x-coordinate of this . Gets or sets the y-coordinate of this . Gets a value indicating whether this is empty. Creates a with the coordinates of the specified . The point. Creates a with the coordinates of the specified . The point. Creates a with the coordinates of the specified . The point. Negates the given point by multiplying all values by -1. The source point. The negated point. Translates a by a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Multiplies by a producing . Multiplier of type . Multiplicand of type . Product of type . Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type . Divides by a producing . Dividend of type . Divisor of type . Result of type . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the negative of a given value. The point on the left hand of the operand. The value on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Converts a to a by performing a ceiling operation on all the coordinates. The point. The . Converts a to a by performing a round operation on all the coordinates. The point. The . Converts a to a by performing a round operation on all the coordinates. The vector. The . Converts a to a by performing a truncate operation on all the coordinates. The point. The . Transforms a point by a specified 3x2 matrix. The point to transform. The transformation matrix used. The transformed . Deconstructs this point into two integers. The out value for X. The out value for Y. Translates this by the specified amount. The amount to offset the x-coordinate. The amount to offset the y-coordinate. Translates this by the specified amount. The used offset this . Represents an ordered pair of single precision floating point x- and y-coordinates that defines a point in a two-dimensional plane. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has X and Y values set to zero. Initializes a new instance of the struct. The horizontal position of the point. The vertical position of the point. Initializes a new instance of the struct from the given . The size. Gets or sets the x-coordinate of this . Gets or sets the y-coordinate of this . Gets a value indicating whether this is empty. Creates a with the coordinates of the specified . The vector. The . Creates a with the coordinates of the specified . The point. The . Creates a with the coordinates of the specified by truncating each of the coordinates. The point. The . Negates the given point by multiplying all values by -1. The source point. The negated point. Translates a by a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Multiplies by a producing . Multiplier of type . Multiplicand of type . Product of type . Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type . Divides by a producing . Dividend of type . Divisor of type . Result of type . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Translates a by the given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the given . The point on the left hand of the operand. The point on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The size on the right hand of the operand. The . Translates a by the negative of a given . The point on the left hand of the operand. The point on the right hand of the operand. The . Translates a by the multiplying the X and Y by the given value. The point on the left hand of the operand. The value on the right hand of the operand. The . Transforms a point by a specified 3x2 matrix. The point to transform. The transformation matrix used. The transformed . Deconstructs this point into two floats. The out value for X. The out value for Y. Translates this by the specified amount. The amount to offset the x-coordinate. The amount to offset the y-coordinate. Translates this by the specified amount. The used offset this . Represents a number that can be expressed as a fraction. This is a very simplified implementation of a rational number designed for use with metadata only. Initializes a new instance of the struct. The to create the rational from. Initializes a new instance of the struct. The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. The number below the line in a vulgar fraction; a divisor. Initializes a new instance of the struct. The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. The number below the line in a vulgar fraction; a divisor. Specified if the rational should be simplified. Initializes a new instance of the struct. The to create the instance from. Initializes a new instance of the struct. The to create the instance from. Whether to use the best possible precision when parsing the value. Gets the numerator of a number. Gets the denominator of a number. Determines whether the specified instances are considered equal. The first to compare. The second to compare. The Determines whether the specified instances are not considered equal. The first to compare. The second to compare. The Converts the specified to an instance of this type. The to convert to an instance of this type. The . Converts the specified to an instance of this type. The to convert to an instance of this type. Whether to use the best possible precision when parsing the value. The . Converts a rational number to the nearest . The . Converts a rational number to the nearest . The . Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. An object that supplies culture-specific formatting information. The Stores a set of four integers that represent the location and size of a rectangle. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has X, Y, Width, and Height values set to zero. Initializes a new instance of the struct. The horizontal position of the rectangle. The vertical position of the rectangle. The width of the rectangle. The height of the rectangle. Initializes a new instance of the struct. The which specifies the rectangles point in a two-dimensional plane. The which specifies the rectangles height and width. Gets or sets the x-coordinate of this . Gets or sets the y-coordinate of this . Gets or sets the width of this . Gets or sets the height of this . Gets or sets the coordinates of the upper-left corner of the rectangular region represented by this . Gets or sets the size of this . Gets a value indicating whether this is empty. Gets the y-coordinate of the top edge of this . Gets the x-coordinate of the right edge of this . Gets the y-coordinate of the bottom edge of this . Gets the x-coordinate of the left edge of this . Creates a with the coordinates of the specified . The rectangle. Creates a with the coordinates of the specified . The rectangle. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Creates a new with the specified location and size. The left coordinate of the rectangle. The top coordinate of the rectangle. The right coordinate of the rectangle. The bottom coordinate of the rectangle. The . Returns the center point of the given . The rectangle. The . Creates a rectangle that represents the intersection between and . If there is no intersection, an empty rectangle is returned. The first rectangle. The second rectangle. The . Creates a that is inflated by the specified amount. The rectangle. The amount to inflate the width by. The amount to inflate the height by. A new . Converts a to a by performing a ceiling operation on all the coordinates. The rectangle. The . Transforms a rectangle by the given matrix. The source rectangle. The transformation matrix. A transformed rectangle. Converts a to a by performing a truncate operation on all the coordinates. The rectangle. The . Converts a to a by performing a round operation on all the coordinates. The rectangle. The . Creates a rectangle that represents the union between and . The first rectangle. The second rectangle. The . Deconstructs this rectangle into four integers. The out value for X. The out value for Y. The out value for the width. The out value for the height. Creates a Rectangle that represents the intersection between this Rectangle and the . The rectangle. Inflates this by the specified amount. The width. The height. Inflates this by the specified amount. The size. Determines if the specfied point is contained within the rectangular region defined by this . The x-coordinate of the given point. The y-coordinate of the given point. The . Determines if the specified point is contained within the rectangular region defined by this . The point. The . Determines if the rectangular region represented by is entirely contained within the rectangular region represented by this . The rectangle. The . Determines if the specfied intersects the rectangular region defined by this . The other Rectange. The . Adjusts the location of this rectangle by the specified amount. The point. Adjusts the location of this rectangle by the specified amount. The amount to offset the x-coordinate. The amount to offset the y-coordinate. Stores a set of four single precision floating points that represent the location and size of a rectangle. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has X, Y, Width, and Height values set to zero. Initializes a new instance of the struct. The horizontal position of the rectangle. The vertical position of the rectangle. The width of the rectangle. The height of the rectangle. Initializes a new instance of the struct. The which specifies the rectangles point in a two-dimensional plane. The which specifies the rectangles height and width. Gets or sets the x-coordinate of this . Gets or sets the y-coordinate of this . Gets or sets the width of this . Gets or sets the height of this . Gets or sets the coordinates of the upper-left corner of the rectangular region represented by this . Gets or sets the size of this . Gets a value indicating whether this is empty. Gets the y-coordinate of the top edge of this . Gets the x-coordinate of the right edge of this . Gets the y-coordinate of the bottom edge of this . Gets the x-coordinate of the left edge of this . Creates a with the coordinates of the specified by truncating each coordinate. The rectangle. Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Creates a new with the specified location and size. The left coordinate of the rectangle. The top coordinate of the rectangle. The right coordinate of the rectangle. The bottom coordinate of the rectangle. The . Returns the center point of the given . The rectangle. The . Creates a rectangle that represents the intersection between and . If there is no intersection, an empty rectangle is returned. The first rectangle. The second rectangle. The . Creates a that is inflated by the specified amount. The rectangle. The amount to inflate the width by. The amount to inflate the height by. A new . Transforms a rectangle by the given matrix. The source rectangle. The transformation matrix. A transformed . Creates a rectangle that represents the union between and . The first rectangle. The second rectangle. The . Deconstructs this rectangle into four floats. The out value for X. The out value for Y. The out value for the width. The out value for the height. Creates a RectangleF that represents the intersection between this RectangleF and the . The rectangle. Inflates this by the specified amount. The width. The height. Inflates this by the specified amount. The size. Determines if the specfied point is contained within the rectangular region defined by this . The x-coordinate of the given point. The y-coordinate of the given point. The . Determines if the specified point is contained within the rectangular region defined by this . The point. The . Determines if the rectangular region represented by is entirely contained within the rectangular region represented by this . The rectangle. The . Determines if the specfied intersects the rectangular region defined by this . The other Rectange. The . Adjusts the location of this rectangle by the specified amount. The point. Adjusts the location of this rectangle by the specified amount. The amount to offset the x-coordinate. The amount to offset the y-coordinate. Represents a number that can be expressed as a fraction. This is a very simplified implementation of a rational number designed for use with metadata only. Initializes a new instance of the struct. The to create the rational from. Initializes a new instance of the struct. The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. The number below the line in a vulgar fraction; a divisor. Initializes a new instance of the struct. The number above the line in a vulgar fraction showing how many of the parts indicated by the denominator are taken. The number below the line in a vulgar fraction; a divisor. Specified if the rational should be simplified. Initializes a new instance of the struct. The to create the instance from. Initializes a new instance of the struct. The to create the instance from. Whether to use the best possible precision when parsing the value. Gets the numerator of a number. Gets the denominator of a number. Determines whether the specified instances are considered equal. The first to compare. The second to compare. The Determines whether the specified instances are not considered equal. The first to compare. The second to compare. The Converts the specified to an instance of this type. The to convert to an instance of this type. The . Converts the specified to an instance of this type. The to convert to an instance of this type. Whether to use the best possible precision when parsing the value. The . Converts a rational number to the nearest . The . Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. An object that supplies culture-specific formatting information. The Stores an ordered pair of integers, which specify a height and width. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has Width and Height values set to zero. Initializes a new instance of the struct. The width and height of the size. Initializes a new instance of the struct. The width of the size. The height of the size. Initializes a new instance of the struct. The size. Initializes a new instance of the struct from the given . The point. Gets or sets the width of this . Gets or sets the height of this . Gets a value indicating whether this is empty. Creates a with the dimensions of the specified . The point. Converts the given into a . The size. Computes the sum of adding two sizes. The size on the left hand of the operand. The size on the right hand of the operand. The . Computes the difference left by subtracting one size from another. The size on the left hand of the operand. The size on the right hand of the operand. The . Multiplies a by an producing . Multiplier of type . Multiplicand of type . Product of type . Multiplies by an producing . Multiplicand of type . Multiplier of type . Product of type . Divides by an producing . Dividend of type . Divisor of type . Result of type . Multiplies by a producing . Multiplier of type . Multiplicand of type . Product of type . Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type . Divides by a producing . Dividend of type . Divisor of type . Result of type . Compares two objects for equality. The on the left side of the operand. The on the right side of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The on the left side of the operand. The on the right side of the operand. True if the current left is unequal to the parameter; otherwise, false. Performs vector addition of two objects. The size on the left hand of the operand. The size on the right hand of the operand. The . Contracts a by another . The size on the left hand of the operand. The size on the right hand of the operand. The . Converts a to a by performing a ceiling operation on all the dimensions. The size. The . Converts a to a by performing a round operation on all the dimensions. The size. The . Transforms a size by the given matrix. The source size. The transformation matrix. A transformed size. Converts a to a by performing a round operation on all the dimensions. The size. The . Deconstructs this size into two integers. The out value for the width. The out value for the height. Multiplies by an producing . Multiplicand of type . Multiplier of type . Product of type . Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type SizeF. Stores an ordered pair of single precision floating points, which specify a height and width. This struct is fully mutable. This is done (against the guidelines) for the sake of performance, as it avoids the need to create new values for modification operations. Represents a that has Width and Height values set to zero. Initializes a new instance of the struct. The width of the size. The height of the size. Initializes a new instance of the struct. The size. Initializes a new instance of the struct from the given . The point. Gets or sets the width of this . Gets or sets the height of this . Gets a value indicating whether this is empty. Creates a with the coordinates of the specified . The point. The . Creates a with the dimensions of the specified by truncating each of the dimensions. The size. The . Converts the given into a . The size. Computes the sum of adding two sizes. The size on the left hand of the operand. The size on the right hand of the operand. The . Computes the difference left by subtracting one size from another. The size on the left hand of the operand. The size on the right hand of the operand. The . Multiplies by a producing . Multiplier of type . Multiplicand of type . Product of type . Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type . Divides by a producing . Dividend of type . Divisor of type . Result of type . Compares two objects for equality. The size on the left hand of the operand. The size on the right hand of the operand. True if the current left is equal to the parameter; otherwise, false. Compares two objects for inequality. The size on the left hand of the operand. The size on the right hand of the operand. True if the current left is unequal to the parameter; otherwise, false. Performs vector addition of two objects. The size on the left hand of the operand. The size on the right hand of the operand. The . Contracts a by another . The size on the left hand of the operand. The size on the right hand of the operand. The . Transforms a size by the given matrix. The source size. The transformation matrix. A transformed size. Deconstructs this size into two floats. The out value for the width. The out value for the height. Multiplies by a producing . Multiplicand of type . Multiplier of type . Product of type SizeF. Represents a value in relation to a value on the image. Initializes a new instance of the struct. The value. The type. Enumerates the different value types. The value is the final return value. The value is a percentage of the image width. The value is a percentage of the images height. Gets the value. Gets the type. Implicitly converts a float into an absolute value. the value to use as the absolute figure. Create a new ValueSize with as a PercentageOfWidth type with value set to percentage. The percentage. a Values size with type PercentageOfWidth Create a new ValueSize with as a PercentageOfHeight type with value set to percentage. The percentage. a Values size with type PercentageOfHeight Create a new ValueSize with as a Absolute type with value set to value. The value. a Values size with type Absolute. Calculates the specified size. The size. The calculated value. Extensions to perform AdaptiveThreshold through Mutator. Applies Bradley Adaptive Threshold to the image. The image this method extends. The . Applies Bradley Adaptive Threshold to the image. The image this method extends. Threshold limit (0.0-1.0) to consider for binarization. The . Applies Bradley Adaptive Threshold to the image. The image this method extends. Upper (white) color for thresholding. Lower (black) color for thresholding. The . Applies Bradley Adaptive Threshold to the image. The image this method extends. Upper (white) color for thresholding. Lower (black) color for thresholding. Threshold limit (0.0-1.0) to consider for binarization. The . Applies Bradley Adaptive Threshold to the image. The image this method extends. Upper (white) color for thresholding. Lower (black) color for thresholding. Rectangle region to apply the processor on. The . Applies Bradley Adaptive Threshold to the image. The image this method extends. Upper (white) color for thresholding. Lower (black) color for thresholding. Threshold limit (0.0-1.0) to consider for binarization. Rectangle region to apply the processor on. The . A helper class for constructing instances for use in affine transforms. Prepends a rotation matrix using the given rotation angle in degrees and the image center point as rotation center. The amount of rotation, in degrees. The . Prepends a rotation matrix using the given rotation angle in radians and the image center point as rotation center. The amount of rotation, in radians. The . Prepends a rotation matrix using the given rotation in degrees at the given origin. The amount of rotation, in degrees. The rotation origin point. The . Prepends a rotation matrix using the given rotation in radians at the given origin. The amount of rotation, in radians. The rotation origin point. The . Appends a rotation matrix using the given rotation angle in degrees and the image center point as rotation center. The amount of rotation, in degrees. The . Appends a rotation matrix using the given rotation angle in radians and the image center point as rotation center. The amount of rotation, in radians. The . Appends a rotation matrix using the given rotation in degrees at the given origin. The amount of rotation, in degrees. The rotation origin point. The . Appends a rotation matrix using the given rotation in radians at the given origin. The amount of rotation, in radians. The rotation origin point. The . Prepends a scale matrix from the given uniform scale. The uniform scale. The . Prepends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Prepends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Appends a scale matrix from the given uniform scale. The uniform scale. The . Appends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Appends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Prepends a centered skew matrix from the give angles in degrees. The X angle, in degrees. The Y angle, in degrees. The . Prepends a centered skew matrix from the give angles in radians. The X angle, in radians. The Y angle, in radians. The . Prepends a skew matrix using the given angles in degrees at the given origin. The X angle, in degrees. The Y angle, in degrees. The skew origin point. The . Prepends a skew matrix using the given angles in radians at the given origin. The X angle, in radians. The Y angle, in radians. The skew origin point. The . Appends a centered skew matrix from the give angles in degrees. The X angle, in degrees. The Y angle, in degrees. The . Appends a centered skew matrix from the give angles in radians. The X angle, in radians. The Y angle, in radians. The . Appends a skew matrix using the given angles in degrees at the given origin. The X angle, in degrees. The Y angle, in degrees. The skew origin point. The . Appends a skew matrix using the given angles in radians at the given origin. The X angle, in radians. The Y angle, in radians. The skew origin point. The . Prepends a translation matrix from the given vector. The translation position. The . Prepends a translation matrix from the given vector. The translation position. The . Appends a translation matrix from the given vector. The translation position. The . Appends a translation matrix from the given vector. The translation position. The . Prepends a raw matrix. The matrix to prepend. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Appends a raw matrix. The matrix to append. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Returns the combined matrix for a given source size. The source image size. The . Returns the combined matrix for a given source rectangle. The rectangle in the source image. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Enumerated anchor positions to apply to resized images. Anchors the position of the image to the center of it's bounding container. Anchors the position of the image to the top of it's bounding container. Anchors the position of the image to the bottom of it's bounding container. Anchors the position of the image to the left of it's bounding container. Anchors the position of the image to the right of it's bounding container. Anchors the position of the image to the top left side of it's bounding container. Anchors the position of the image to the top right side of it's bounding container. Anchors the position of the image to the bottom right side of it's bounding container. Anchors the position of the image to the bottom left side of it's bounding container. Selects the value to be compared to threshold. Compare the color luminance (according to ITU-R Recommendation BT.709). Compare the HSL saturation of the color. Compare the maximum of YCbCr chroma value, i.e. Cb and Cr distance from achromatic value. Enumerates the various types of defined color blindness filters. Partial color desensitivity. Complete color desensitivity (Monochrome) Green weak Green blind Red weak Red blind Blue weak Blue blind Performs processor application operations on the source image The pixel format Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source image. Whether to mutate the image. Defines extensions to apply binary dithering on an using Mutate/Clone. Dithers the image reducing it to two colors using ordered dithering. The image this method extends. The ordered ditherer. The to allow chaining of operations. Dithers the image reducing it to two colors using ordered dithering. The image this method extends. The ordered ditherer. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold The to allow chaining of operations. Dithers the image reducing it to two colors using ordered dithering. The image this method extends. The ordered ditherer. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Dithers the image reducing it to two colors using ordered dithering. The image this method extends. The ordered ditherer. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extension methods to apply binary thresholding on an using Mutate/Clone. Applies binarization to the image splitting the pixels at the given threshold with Luminance as the color component to be compared to threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. Selects the value to be compared to threshold. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold with Luminance as the color component to be compared to threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. Selects the value to be compared to threshold. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold with Luminance as the color component to be compared to threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold Selects the value to be compared to threshold. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold with Luminance as the color component to be compared to threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies binarization to the image splitting the pixels at the given threshold. The image this method extends. The threshold to apply binarization of the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold Selects the value to be compared to threshold. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Adds bokeh blurring extensions to the type. Applies a bokeh blur to the image. The image this method extends. The to allow chaining of operations. Applies a bokeh blur to the image. The image this method extends. The 'radius' value representing the size of the area to sample. The 'components' value representing the number of kernels to use to approximate the bokeh effect. The gamma highlight factor to use to emphasize bright spots in the source image The to allow chaining of operations. Applies a bokeh blur to the image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a bokeh blur to the image. The image this method extends. The 'radius' value representing the size of the area to sample. The 'components' value representing the number of kernels to use to approximate the bokeh effect. The gamma highlight factor to use to emphasize bright spots in the source image The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions methods to apply box blurring to an using Mutate/Clone. Applies a box blur to the image. The image this method extends. The to allow chaining of operations. Applies a box blur to the image. The image this method extends. The 'radius' value representing the size of the area to sample. The to allow chaining of operations. Applies a box blur to the image. The image this method extends. The 'radius' value representing the size of the area to sample. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines edge detection extensions applicable on an using Mutate/Clone. Detects any edges within the image. Uses the kernel operating in grayscale mode. The image this method extends. The to allow chaining of operations. Detects any edges within the image. Uses the kernel operating in grayscale mode. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. The 2D edge detector kernel. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. The 2D edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. The 2D edge detector kernel. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. The 2D edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. The edge detector kernel. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. The edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. The edge detector kernel. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. The edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. Thecompass edge detector kernel. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. Thecompass edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The to allow chaining of operations. Detects any edges within the image operating in grayscale mode. The image this method extends. Thecompass edge detector kernel. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Detects any edges within the image using a . The image this method extends. Thecompass edge detector kernel. Whether to convert the image to grayscale before performing edge detection. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines Gaussian blurring extensions to apply on an using Mutate/Clone. Applies a Gaussian blur to the image. The image this method extends. The to allow chaining of operations. Applies a Gaussian blur to the image. The image this method extends. The 'sigma' value representing the weight of the blur. The to allow chaining of operations. Applies a Gaussian blur to the image. The image this method extends. The 'sigma' value representing the weight of the blur. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines Gaussian sharpening extensions to apply on an using Mutate/Clone. Applies a Gaussian sharpening filter to the image. The image this method extends. The to allow chaining of operations. Applies a Gaussian sharpening filter to the image. The image this method extends. The 'sigma' value representing the weight of the blur. The to allow chaining of operations. Applies a Gaussian sharpening filter to the image. The image this method extends. The 'sigma' value representing the weight of the blur. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines dithering extensions to apply on an using Mutate/Clone. Dithers the image reducing it to a web-safe palette using . The image this method extends. The to allow chaining of operations. Dithers the image reducing it to a web-safe palette. The image this method extends. The ordered ditherer. The to allow chaining of operations. Dithers the image reducing it to a web-safe palette. The image this method extends. The ordered ditherer. The dithering scale used to adjust the amount of dither. The to allow chaining of operations. Dithers the image reducing it to the given palette. The image this method extends. The ordered ditherer. The palette to select substitute colors from. The to allow chaining of operations. Dithers the image reducing it to the given palette. The image this method extends. The ordered ditherer. The dithering scale used to adjust the amount of dither. The palette to select substitute colors from. The to allow chaining of operations. Dithers the image reducing it to a web-safe palette using . The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Dithers the image reducing it to a web-safe palette. The image this method extends. The ordered ditherer. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Dithers the image reducing it to a web-safe palette. The image this method extends. The ordered ditherer. The dithering scale used to adjust the amount of dither. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Dithers the image reducing it to the given palette. The image this method extends. The ordered ditherer. The palette to select substitute colors from. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Dithers the image reducing it to the given palette. The image this method extends. The ordered ditherer. The dithering scale used to adjust the amount of dither. The palette to select substitute colors from. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Adds extensions that allow the drawing of images to the type. Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The blending mode. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The color blending mode. The alpha composition mode. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The options, including the blending type and blending amount. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The location to draw the blended image. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The location to draw the blended image. The color blending to apply. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The location to draw the blended image. The color blending to apply. The alpha composition mode. The opacity of the image to blend. Must be between 0 and 1. The . Draws the given image together with the current one by blending their pixels. The image this method extends. The image to blend with the currently processing image. The location to draw the blended image. The options containing the blend mode and opacity. The . Defines oil painting effect extensions applicable on an using Mutate/Clone. Alters the colors of the image recreating an oil painting effect with levels and brushSize set to 10 and 15 respectively. The image this method extends. The to allow chaining of operations. Alters the colors of the image recreating an oil painting effect with levels and brushSize set to 10 and 15 respectively. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Alters the colors of the image recreating an oil painting effect. The image this method extends. The number of intensity levels. Higher values result in a broader range of color intensities forming part of the result image. The number of neighboring pixels used in calculating each individual pixel value. The to allow chaining of operations. Alters the colors of the image recreating an oil painting effect. The image this method extends. The number of intensity levels. Higher values result in a broader range of color intensities forming part of the result image. The number of neighboring pixels used in calculating each individual pixel value. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines pixelation effect extensions applicable on an using Mutate/Clone. Pixelates an image with the given pixel size. The image this method extends. The to allow chaining of operations. Pixelates an image with the given pixel size. The image this method extends. The size of the pixels. The to allow chaining of operations. Pixelates an image with the given pixel size. The image this method extends. The size of the pixels. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extension methods that allow the application of user defined processing delegate to an . Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The to apply during the pixel conversions. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The structure that specifies the portion of the image object to alter. The to apply during the pixel conversions. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The to apply during the pixel conversions. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a user defined processing delegate to the image. The image this method extends. The user defined processing delegate to use to modify image rows. The structure that specifies the portion of the image object to alter. The to apply during the pixel conversions. The to allow chaining of operations. Defines extension methods that allow the application of black and white toning to an using Mutate/Clone. Applies black and white toning to the image. The image this method extends. The to allow chaining of operations. Applies black and white toning to the image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the alteration of the brightness component of an using Mutate/Clone. Alters the brightness component of the image. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing brighter results. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The to allow chaining of operations. Alters the brightness component of the image. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing brighter results. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that simulate the effects of various color blindness disorders on an using Mutate/Clone. Applies the given colorblindness simulator to the image. The image this method extends. The type of color blindness simulator to apply. The to allow chaining of operations. Applies the given colorblindness simulator to the image. The image this method extends. The type of color blindness simulator to apply. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the alteration of the contrast component of an using Mutate/Clone. Alters the contrast component of the image. A value of 0 will create an image that is completely gray. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing results with more contrast. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The to allow chaining of operations. Alters the contrast component of the image. A value of 0 will create an image that is completely gray. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing results with more contrast. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the application of composable filters to an using Mutate/Clone. Filters an image by the given color matrix The image this method extends. The filter color matrix The to allow chaining of operations. Filters an image by the given color matrix The image this method extends. The filter color matrix The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the application of grayscale toning to an using Mutate/Clone. Applies grayscale toning to the image. The image this method extends. The . Applies grayscale toning to the image using the given amount. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The . Applies grayscale toning to the image with the given . The image this method extends. The formula to apply to perform the operation. The . Applies grayscale toning to the image with the given using the given amount. The image this method extends. The formula to apply to perform the operation. The proportion of the conversion. Must be between 0 and 1. The . Applies grayscale toning to the image. The image this method extends. The structure that specifies the portion of the image object to alter. The . Applies grayscale toning to the image using the given amount. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The structure that specifies the portion of the image object to alter. The . Applies grayscale toning to the image. The image this method extends. The formula to apply to perform the operation. The structure that specifies the portion of the image object to alter. The . Applies grayscale toning to the image using the given amount. The image this method extends. The formula to apply to perform the operation. The proportion of the conversion. Must be between 0 and 1. The structure that specifies the portion of the image object to alter. The . Defines extensions that allow the alteration of the hue component of an using Mutate/Clone. Alters the hue component of the image. The image this method extends. The rotation angle in degrees to adjust the hue. The to allow chaining of operations. Alters the hue component of the image. The image this method extends. The rotation angle in degrees to adjust the hue. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the inversion of colors of an using Mutate/Clone. Inverts the colors of the image. The image this method extends. The to allow chaining of operations. Inverts the colors of the image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the recreation of an old Kodachrome camera effect on an using Mutate/Clone. Alters the colors of the image recreating an old Kodachrome camera effect. The image this method extends. The to allow chaining of operations. Alters the colors of the image recreating an old Kodachrome camera effect. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the alteration of the lightness component of an using Mutate/Clone. Alters the lightness component of the image. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing lighter results. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The to allow chaining of operations. Alters the lightness component of the image. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing lighter results. The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the recreation of an old Lomograph camera effect on an using Mutate/Clone. Alters the colors of the image recreating an old Lomograph camera effect. The image this method extends. The to allow chaining of operations. Alters the colors of the image recreating an old Lomograph camera effect. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the alteration of the opacity component of an using Mutate/Clone. Multiplies the alpha component of the image. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The to allow chaining of operations. Multiplies the alpha component of the image. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the recreation of an old Polaroid camera effect on an using Mutate/Clone. Alters the colors of the image recreating an old Polaroid camera effect. The image this method extends. The to allow chaining of operations. Alters the colors of the image recreating an old Polaroid camera effect. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the alteration of the saturation component of an using Mutate/Clone. Alters the saturation component of the image. A value of 0 is completely un-saturated. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of amount over 1 are allowed, providing super-saturated results The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The to allow chaining of operations. Alters the saturation component of the image. A value of 0 is completely un-saturated. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of amount over 1 are allowed, providing super-saturated results The image this method extends. The proportion of the conversion. Must be greater than or equal to 0. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the application of sepia toning on an using Mutate/Clone. Applies sepia toning to the image. The image this method extends. The to allow chaining of operations. Applies sepia toning to the image using the given amount. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The to allow chaining of operations. Applies sepia toning to the image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies sepia toning to the image. The image this method extends. The proportion of the conversion. Must be between 0 and 1. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extension that allow the adjustment of the contrast of an image via its histogram. Equalizes the histogram of an image to increases the contrast. The image this method extends. The to allow chaining of operations. Equalizes the histogram of an image to increases the contrast. The image this method extends. The histogram equalization options to use. The to allow chaining of operations. Defines extension methods to replace the background color of an using Mutate/Clone. Replaces the background color of image with the given one. The image this method extends. The color to set as the background. The to allow chaining of operations. Replaces the background color of image with the given one. The image this method extends. The color to set as the background. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Replaces the background color of image with the given one. The image this method extends. The options effecting pixel blending. The color to set as the background. The to allow chaining of operations. Replaces the background color of image with the given one. The image this method extends. The options effecting pixel blending. The color to set as the background. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the application of a radial glow on an using Mutate/Clone. Applies a radial glow effect to an image. The image this method extends. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The color to set as the glow. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The the radius. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The color to set as the glow. The the radius. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The color to set as the glow. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The the radius. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The color to set as the glow. The the radius. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The color to set as the glow. The the radius. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial glow effect to an image. The image this method extends. The options effecting things like blending. The color to set as the glow. The the radius. The to allow chaining of operations. Defines extensions that allow the application of a radial glow to an using Mutate/Clone. Applies a radial vignette effect to an image. The image this method extends. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The color to set as the vignette. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The the x-radius. The the y-radius. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The color to set as the vignette. The the x-radius. The the y-radius. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The options effecting pixel blending. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The options effecting pixel blending. The color to set as the vignette. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The options effecting pixel blending. The the x-radius. The the y-radius. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The options effecting pixel blending. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies a radial vignette effect to an image. The image this method extends. The options effecting pixel blending. The color to set as the vignette. The the x-radius. The the y-radius. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Adds extensions that allow the processing of images to the type. Defines extensions that allow the computation of image integrals on an Mutates the source image by applying the image operation to it. The image to mutate. The operation to perform on the source. The source is null. The operation is null. The source has been disposed. The processing operation failed. Mutates the source image by applying the image operation to it. The image to mutate. The configuration which allows altering default behaviour or extending the library. The operation to perform on the source. The configuration is null. The source is null. The operation is null. The source has been disposed. The processing operation failed. Mutates the source image by applying the image operation to it. The pixel format. The image to mutate. The operation to perform on the source. The source is null. The operation is null. The source has been disposed. The processing operation failed. Mutates the source image by applying the image operation to it. The pixel format. The image to mutate. The configuration which allows altering default behaviour or extending the library. The operation to perform on the source. The configuration is null. The source is null. The operation is null. The source has been disposed. The processing operation failed. Mutates the source image by applying the operations to it. The pixel format. The image to mutate. The operations to perform on the source. The source is null. The operations are null. The source has been disposed. The processing operation failed. Mutates the source image by applying the operations to it. The pixel format. The image to mutate. The configuration which allows altering default behaviour or extending the library. The operations to perform on the source. The configuration is null. The source is null. The operations are null. The source has been disposed. The processing operation failed. Creates a deep clone of the current image. The clone is then mutated by the given operation. The image to clone. The operation to perform on the clone. The new . The source is null. The operation is null. The source has been disposed. The processing operation failed. Creates a deep clone of the current image. The clone is then mutated by the given operation. The image to clone. The configuration which allows altering default behaviour or extending the library. The operation to perform on the clone. The configuration is null. The source is null. The operation is null. The source has been disposed. The processing operation failed. The new . Creates a deep clone of the current image. The clone is then mutated by the given operation. The pixel format. The image to clone. The operation to perform on the clone. The source is null. The operation is null. The source has been disposed. The processing operation failed. The new . Creates a deep clone of the current image. The clone is then mutated by the given operation. The pixel format. The image to clone. The configuration which allows altering default behaviour or extending the library. The operation to perform on the clone. The configuration is null. The source is null. The operation is null. The source has been disposed. The processing operation failed. The new Creates a deep clone of the current image. The clone is then mutated by the given operations. The pixel format. The image to clone. The operations to perform on the clone. The source is null. The operations are null. The source has been disposed. The processing operation failed. The new Creates a deep clone of the current image. The clone is then mutated by the given operations. The pixel format. The image to clone. The configuration which allows altering default behaviour or extending the library. The operations to perform on the clone. The configuration is null. The source is null. The operations are null. The source has been disposed. The processing operation failed. The new Applies the given collection against the context The image processing context. The operations to perform on the source. The processing operation failed. The to allow chaining of operations. Apply an image integral. The image on which to apply the integral. The type of the pixel. The containing all the sums. Defines extensions that allow the application of quantizing algorithms on an using Mutate/Clone. Applies quantization to the image using the . The image this method extends. The to allow chaining of operations. Applies quantization to the image. The image this method extends. The quantizer to apply to perform the operation. The to allow chaining of operations. Applies quantization to the image using the . The image this method extends. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Applies quantization to the image. The image this method extends. The quantizer to apply to perform the operation. The structure that specifies the portion of the image object to alter. The to allow chaining of operations. Defines extensions that allow the application of auto-orientation operations to an using Mutate/Clone. Adjusts an image so that its orientation is suitable for viewing. Adjustments are based on EXIF metadata embedded in the image. The image to auto rotate. The to allow chaining of operations. Defines extensions that allow the application of cropping operations on an using Mutate/Clone. Crops an image to the given width and height. The image to resize. The target image width. The target image height. The to allow chaining of operations. Crops an image to the given rectangle. The image to crop. The structure that specifies the portion of the image object to retain. The to allow chaining of operations. Defines extensions that allow the application of entropy cropping operations on an using Mutate/Clone. Crops an image to the area of greatest entropy using a threshold for entropic density of .5F. The image to crop. The to allow chaining of operations. Crops an image to the area of greatest entropy. The image to crop. The threshold for entropic density. The to allow chaining of operations. Defines extensions that allow the application of flipping operations on an using Mutate/Clone. Flips an image by the given instructions. The image to rotate, flip, or both. The to perform the flip. The to allow chaining of operations. Defines extensions that allow the application of padding operations on an using Mutate/Clone. Evenly pads an image to fit the new dimensions. The source image to pad. The new width. The new height. The to allow chaining of operations. Evenly pads an image to fit the new dimensions with the given background color. The source image to pad. The new width. The new height. The background color with which to pad the image. The to allow chaining of operations. Defines extensions that allow the application of resize operations on an using Mutate/Clone. Resizes an image to the given . The image to resize. The target image size. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given . The image to resize. The target image size. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height. The image to resize. The target image width. The target image height. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height. The image to resize. The target image width. The target image height. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height with the given sampler. The image to resize. The target image width. The target image height. The to perform the resampling. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height with the given sampler. The image to resize. The target image size. The to perform the resampling. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height with the given sampler. The image to resize. The target image width. The target image height. The to perform the resampling. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height with the given sampler and source rectangle. The image to resize. The target image width. The target image height. The to perform the resampling. The structure that specifies the portion of the image object to draw. The structure that specifies the portion of the target image object to draw to. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image to the given width and height with the given sampler and source rectangle. The image to resize. The target image width. The target image height. The to perform the resampling. The structure that specifies the portion of the target image object to draw to. Whether to compress and expand the image color-space to gamma correct the image during processing. The to allow chaining of operations. Passing zero for one of height or width will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Resizes an image in accordance with the given . The image to resize. The resize options. The to allow chaining of operations. Passing zero for one of height or width within the resize options will automatically preserve the aspect ratio of the original image or the nearest possible ratio. Defines extensions that allow the application of rotate operations on an using Mutate/Clone. Rotates and flips an image by the given instructions. The image to rotate. The to perform the rotation. The to allow chaining of operations. Rotates an image by the given angle in degrees. The image to rotate. The angle in degrees to perform the rotation. The to allow chaining of operations. Rotates an image by the given angle in degrees using the specified sampling algorithm. The image to rotate. The angle in degrees to perform the rotation. The to perform the resampling. The to allow chaining of operations. Defines extensions that allow the application of rotate-flip operations on an using Mutate/Clone. Rotates and flips an image by the given instructions. The image to rotate, flip, or both. The to perform the rotation. The to perform the flip. The to allow chaining of operations. Defines extensions that allow the application of skew operations on an using Mutate/Clone. Skews an image by the given angles in degrees. The image to skew. The angle in degrees to perform the skew along the x-axis. The angle in degrees to perform the skew along the y-axis. The to allow chaining of operations. Skews an image by the given angles in degrees using the specified sampling algorithm. The image to skew. The angle in degrees to perform the skew along the x-axis. The angle in degrees to perform the skew along the y-axis. The to perform the resampling. The to allow chaining of operations. Defines extensions that allow the application of swizzle operations on an Swizzles an image. The image to swizzle. The swizzler function. The swizzler function type. The to allow chaining of operations. Defines extensions that allow the application of composable transform operations on an using Mutate/Clone. Performs an affine transform of an image. The image to transform. The affine transform builder. The Performs an affine transform of an image using the specified sampling algorithm. The . The affine transform builder. The to perform the resampling. The to allow chaining of operations. Performs an affine transform of an image using the specified sampling algorithm. The . The source rectangle The affine transform builder. The to perform the resampling. The to allow chaining of operations. Performs an affine transform of an image using the specified sampling algorithm. The . The source rectangle The transformation matrix. The size of the result image. The to perform the resampling. The to allow chaining of operations. Performs a projective transform of an image. The image to transform. The affine transform builder. The to allow chaining of operations. Performs a projective transform of an image using the specified sampling algorithm. The . The projective transform builder. The to perform the resampling. The to allow chaining of operations. Performs a projective transform of an image using the specified sampling algorithm. The . The source rectangle The projective transform builder. The to perform the resampling. The to allow chaining of operations. Performs a projective transform of an image using the specified sampling algorithm. The . The source rectangle The transformation matrix. The size of the result image. The to perform the resampling. The to allow chaining of operations. Provides enumeration over how a image should be flipped. Don't flip the image. Flip the image horizontally. Flip the image vertically. Enumerates the various types of defined grayscale filters. ITU-R Recommendation BT.709 ITU-R Recommendation BT.601 A pixel-agnostic interface to queue up image operations to apply to an image. Gets the configuration which allows altering default behaviour or extending the library. Gets a set of properties for the Image Processing Context. This can be used for storing global settings and defaults to be accessable to processors. Gets the image dimensions at the current point in the processing pipeline. The . Adds the processor to the current set of image operations to be applied. The processor to apply. The area to apply it to. The current operations class to allow chaining of operations. Adds the processor to the current set of image operations to be applied. The processor to apply. The current operations class to allow chaining of operations. Represents an interface that will create IInternalImageProcessingContext instances Called during mutate operations to generate the image operations provider. The pixel format The configuration which allows altering default behaviour or extending the library. The source image. A flag to determine whether image operations are allowed to mutate the source image. A new The default implementation of An interface for internal operations we don't want to expose on . The pixel type. Returns the result image to return by (and other overloads). The current image or a new image depending on whether it is requested to mutate the source image. Contains reusable static instances of known dithering algorithms. Gets the order ditherer using the 2x2 Bayer dithering matrix Gets the order ditherer using the 3x3 dithering matrix Gets the order ditherer using the 4x4 Bayer dithering matrix Gets the order ditherer using the 8x8 Bayer dithering matrix Gets the order ditherer using the 16x16 Bayer dithering matrix Gets the error Dither that implements the Atkinson algorithm. Gets the error Dither that implements the Burks algorithm. Gets the error Dither that implements the Floyd-Steinberg algorithm. Gets the error Dither that implements the Jarvis-Judice-Ninke algorithm. Gets the error Dither that implements the Sierra-2 algorithm. Gets the error Dither that implements the Sierra-3 algorithm. Gets the error Dither that implements the Sierra-Lite algorithm. Gets the error Dither that implements the Stevenson-Arce algorithm. Gets the error Dither that implements the Stucki algorithm. Contains reusable static instances of known edge detection kernels. Gets the Kayyali edge detector kernel. Gets the Kirsch edge detector kernel. Gets the Laplacian 3x3 edge detector kernel. Gets the Laplacian 5x5 edge detector kernel. Gets the Laplacian of Gaussian edge detector kernel. Gets the Prewitt edge detector kernel. Gets the Roberts-Cross edge detector kernel. Gets the Robinson edge detector kernel. Gets the Scharr edge detector kernel. Gets the Sobel edge detector kernel. A collection of known values for composing filters Gets a filter recreating Achromatomaly (Color desensitivity) color blindness Gets a filter recreating Achromatopsia (Monochrome) color blindness. Gets a filter recreating Deuteranomaly (Green-Weak) color blindness. Gets a filter recreating Deuteranopia (Green-Blind) color blindness. Gets a filter recreating Protanomaly (Red-Weak) color blindness. Gets a filter recreating Protanopia (Red-Blind) color blindness. Gets a filter recreating Tritanomaly (Blue-Weak) color blindness. Gets a filter recreating Tritanopia (Blue-Blind) color blindness. Gets an approximated black and white filter Gets a filter recreating an old Kodachrome camera effect. Gets a filter recreating an old Lomograph camera effect. Gets a filter recreating an old Polaroid camera effect. Create a brightness filter matrix using the given amount. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing brighter results. The proportion of the conversion. Must be greater than or equal to 0. The Create a contrast filter matrix using the given amount. A value of 0 will create an image that is completely gray. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing results with more contrast. The proportion of the conversion. Must be greater than or equal to 0. The Create a grayscale filter matrix using the given amount using the formula as specified by ITU-R Recommendation BT.601. The proportion of the conversion. Must be between 0 and 1. The Create a grayscale filter matrix using the given amount using the formula as specified by ITU-R Recommendation BT.709. The proportion of the conversion. Must be between 0 and 1. The Create a hue filter matrix using the given angle in degrees. The angle of rotation in degrees. The Create an invert filter matrix using the given amount. The proportion of the conversion. Must be between 0 and 1. The Create an opacity filter matrix using the given amount. The proportion of the conversion. Must be between 0 and 1. The Create a saturation filter matrix using the given amount. A value of 0 is completely un-saturated. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of amount over 1 are allowed, providing super-saturated results The proportion of the conversion. Must be greater than or equal to 0. The Create a lightness filter matrix using the given amount. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing lighter results. The proportion of the conversion. Must be greater than or equal to 0. The Create a sepia filter matrix using the given amount. The formula used matches the svg specification. The proportion of the conversion. Must be between 0 and 1. The Contains reusable static instances of known quantizing algorithms Gets the adaptive Octree quantizer. Fast with good quality. Gets the Xiaolin Wu's Color Quantizer which generates high quality output. Gets the palette based quantizer consisting of web safe colors as defined in the CSS Color Module Level 4. Gets the palette based quantizer consisting of colors as defined in the original second edition of Werner’s Nomenclature of Colours 1821. The hex codes were collected and defined by Nicholas Rougeux Contains reusable static instances of known resampling algorithms Gets the Bicubic sampler that implements the bicubic kernel algorithm W(x) Gets the Box sampler that implements the box algorithm. Similar to nearest neighbor when upscaling. When downscaling the pixels will average, merging pixels together. Gets the Catmull-Rom sampler, a well known standard Cubic Filter often used as a interpolation function Gets the Hermite sampler. A type of smoothed triangular interpolation filter that rounds off strong edges while preserving flat 'color levels' in the original image. Gets the Lanczos kernel sampler that implements smooth interpolation with a radius of 2 pixels. This algorithm provides sharpened results when compared to others when downsampling. Gets the Lanczos kernel sampler that implements smooth interpolation with a radius of 3 pixels This algorithm provides sharpened results when compared to others when downsampling. Gets the Lanczos kernel sampler that implements smooth interpolation with a radius of 5 pixels This algorithm provides sharpened results when compared to others when downsampling. Gets the Lanczos kernel sampler that implements smooth interpolation with a radius of 8 pixels This algorithm provides sharpened results when compared to others when downsampling. Gets the Mitchell-Netravali sampler. This seperable cubic algorithm yields a very good equilibrium between detail preservation (sharpness) and smoothness. Gets the Nearest-Neighbour sampler that implements the nearest neighbor algorithm. This uses a very fast, unscaled filter which will select the closest pixel to the new pixels position. Gets the Robidoux sampler. This algorithm developed by Nicolas Robidoux providing a very good equilibrium between detail preservation (sharpness) and smoothness comparable to . Gets the Robidoux Sharp sampler. A sharpened form of the sampler Gets the Spline sampler. A separable cubic algorithm similar to but yielding smoother results. Gets the Triangle sampler, otherwise known as Bilinear. This interpolation algorithm can be used where perfect image transformation with pixel matching is impossible, so that one can calculate and assign appropriate intensity values to pixels Gets the Welch sampler. A high speed algorithm that delivers very sharpened results. A representing a user defined processing delegate to use to modify image rows. The target row of pixels to process. The , , , and fields map the RGBA channels respectively. A representing a user defined processing delegate to use to modify image rows. The type of the parameter of the method that this delegate encapsulates. This type parameter is contravariant.That is, you can use either the type you specified or any type that is less derived. The target row of pixels to process. The parameter of the method that this delegate encapsulates. The , , , and fields map the RGBA channels respectively. Performs Bradley Adaptive Threshold filter against an image. Implements "Adaptive Thresholding Using the Integral Image", see paper: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.420.7883&rep=rep1&type=pdf Initializes a new instance of the class. Initializes a new instance of the class. Threshold limit. Initializes a new instance of the class. Color for upper threshold. Color for lower threshold. Initializes a new instance of the class. Color for upper threshold. Color for lower threshold. Threshold limit. Gets or sets upper color limit for thresholding. Gets or sets lower color limit for threshold. Gets or sets the value for threshold limit. Performs Bradley Adaptive Threshold filter against an image. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Performs simple binary threshold filtering against an image. Initializes a new instance of the class. The threshold to split the image. Must be between 0 and 1. The color component to be compared to threshold. Initializes a new instance of the class with Luminance as color component to be compared to threshold. The threshold to split the image. Must be between 0 and 1. Initializes a new instance of the class. The threshold to split the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold. The color component to be compared to threshold. Initializes a new instance of the class with Luminance as color component to be compared to threshold. The threshold to split the image. Must be between 0 and 1. The color to use for pixels that are above the threshold. The color to use for pixels that are below the threshold. Gets the threshold value. Gets the color to use for pixels that are above the threshold. Gets the color to use for pixels that fall below the threshold. Gets the defining the value to be compared to threshold. Performs simple binary threshold filtering against an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. A implementing the clone logic for . The base class for all cloning image processors. The base class for all pixel specific cloning image processors. Allows the application of processing algorithms to the image. The image is cloned before operating upon and the buffers swapped upon completion. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source for the current processor instance. The source area to process for the current processor instance. Gets The source for the current processor instance. Gets The source area to process for the current processor instance. Gets the instance to use when performing operations. Gets the size of the destination image. The . This method is called before the process is applied to prepare the processor. The cloned/destination image. Cannot be null. This method is called before the process is applied to prepare the processor. The source image. Cannot be null. The cloned/destination image. Cannot be null. Applies the process to the specified portion of the specified at the specified location and with the specified size. The source image. Cannot be null. The cloned/destination image. Cannot be null. This method is called after the process is applied to prepare the processor. The source image. Cannot be null. The cloned/destination image. Cannot be null. This method is called after the process is applied to prepare the processor. The cloned/destination image. Cannot be null. Disposes the object and frees resources for the Garbage Collector. Whether to dispose managed and unmanaged objects. Applies bokeh blur processing to the image. The default radius used by the parameterless constructor. The default component count used by the parameterless constructor. The default gamma used by the parameterless constructor. Initializes a new instance of the class. Initializes a new instance of the class. The 'radius' value representing the size of the area to sample. The number of components to use to approximate the original 2D bokeh blur convolution kernel. The gamma highlight factor to use to further process the image. Gets the radius. Gets the number of components. Gets the gamma highlight factor to use when applying the effect. A implementing the horizontal convolution logic for . This type is located in the non-generic class and not in , where it is actually used, because it does not use any generic parameters internally. Defining in a non-generic class means that there will only ever be a single instantiation of this type for the JIT/AOT compilers to process, instead of having duplicate versions for each pixel type. Applies bokeh blur processing to the image. The pixel format. This processor is based on the code from Mike Pound, see github.com/mikepound/convolve. The gamma highlight factor to use when applying the effect The size of each complex convolution kernel. The kernel parameters to use for the current instance (a: X, b: Y, A: Z, B: W) The kernel components for the current instance Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Gets the complex kernels to use to apply the blur for the current instance Gets the kernel parameters used to compute the pixel values from each complex pixel Computes and aggregates the convolution for each complex kernel component in the processor. The source image. Cannot be null. The structure that specifies the portion of the image object to draw. The configuration. The buffer with the raw pixel data to use to aggregate the results of each convolution. A implementing the vertical convolution logic for . A implementing the gamma exposure logic for . A implementing the 3F gamma exposure logic for . A implementing the inverse gamma exposure logic for . A implementing the inverse 3F gamma exposure logic for . Defines a box blur processor of a given radius. The default radius used by the parameterless constructor. Initializes a new instance of the class. The 'radius' value representing the size of the area to sample. Initializes a new instance of the class. Gets the Radius. Applies box blur processing to the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Gets the 1D convolution kernel. Create a 1 dimensional Box kernel. The maximum size of the kernel in either direction. The . Defines a processor that uses two one-dimensional matrices to perform convolution against an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The horizontal gradient operator. The vertical gradient operator. Whether the convolution filter is applied to alpha as well as the color channels. The source for the current processor instance. The source area to process for the current processor instance. Gets the horizontal convolution kernel. Gets the vertical convolution kernel. Gets a value indicating whether the convolution filter is applied to alpha as well as the color channels. A implementing the logic for 2D convolution. A stack only struct used for reducing reference indirection during 2D convolution operations. Defines a processor that uses two one-dimensional matrices to perform two-pass convolution against an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The 1D convolution kernel. Whether the convolution filter is applied to alpha as well as the color channels. The source for the current processor instance. The source area to process for the current processor instance. Gets the convolution kernel. Gets a value indicating whether the convolution filter is applied to alpha as well as the color channels. A implementing the logic for the horizontal 1D convolution. A implementing the logic for the vertical 1D convolution. Kernel radius is calculated using the minimum viable value. See . Create a 1 dimensional Gaussian kernel using the Gaussian G(x) function. The convolution kernel. Create a 1 dimensional Gaussian kernel using the Gaussian G(x) function The convolution kernel. Defines a processor that uses a 2 dimensional matrix to perform convolution against an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The 2d gradient operator. Whether the convolution filter is applied to alpha as well as the color channels. The source for the current processor instance. The source area to process for the current processor instance. Gets the 2d convolution kernel. Gets a value indicating whether the convolution filter is applied to alpha as well as the color channels. A implementing the convolution logic for . A stack only struct used for reducing reference indirection during convolution operations. Defines edge detection using the two 1D gradient operators. Initializes a new instance of the class. The 2D edge detector kernel. Whether to convert the image to grayscale before performing edge detection. Gets the 2D edge detector kernel. Gets a value indicating whether to convert the image to grayscale before performing edge detection. Defines a processor that detects edges within an image using two one-dimensional matrices. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Defines edge detection using eight gradient operators. Initializes a new instance of the class. The edge detector kernel. Whether to convert the image to grayscale before performing edge detection. Gets the edge detector kernel. Gets a value indicating whether to convert the image to grayscale before performing edge detection. Defines a processor that detects edges within an image using a eight two dimensional matrices. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. A implementing the convolution logic for . Defines edge detection using a single 2D gradient operator. Initializes a new instance of the class. The edge detector kernel. Whether to convert the image to grayscale before performing edge detection. Gets the edge detector kernel. Gets a value indicating whether to convert the image to grayscale before performing edge detection. Defines a processor that detects edges within an image using a single two dimensional matrix. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The target area to process for the current processor instance. Defines Gaussian blur by a (Sigma, Radius) pair. The default value for . Initializes a new instance of the class. Initializes a new instance of the class. The 'sigma' value representing the weight of the blur. Initializes a new instance of the class. The 'radius' value representing the size of the area to sample. Initializes a new instance of the class. The 'sigma' value representing the weight of the blur. The 'radius' value representing the size of the area to sample. This should be at least twice the sigma value. Gets the sigma value representing the weight of the blur Gets the radius defining the size of the area to sample. Applies Gaussian blur processing to an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Gets the 1D convolution kernel. Defines Gaussian sharpening by a (Sigma, Radius) pair. The default value for . Initializes a new instance of the class. Initializes a new instance of the class. The 'sigma' value representing the weight of the blur. Initializes a new instance of the class. The 'radius' value representing the size of the area to sample. Initializes a new instance of the class. The 'sigma' value representing the weight of the blur. The 'radius' value representing the size of the area to sample. This should be at least twice the sigma value. Gets the sigma value representing the weight of the blur Gets the radius defining the size of the area to sample. Applies Gaussian sharpening processing to the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Gets the 1D convolution kernel. Represents an edge detection convolution kernel consisting of two 1D gradient operators. An edge detection kernel containing two Kayyali operators. An edge detection kernel containing two Prewitt operators. . An edge detection kernel containing two Roberts-Cross operators. . An edge detection kernel containing two Scharr operators. An edge detection kernel containing two Sobel operators. . Initializes a new instance of the struct. The horizontal gradient operator. The vertical gradient operator. Gets the horizontal gradient operator. Gets the vertical gradient operator. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is equal to the parameter; otherwise, false. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is not equal to the parameter; otherwise, false. Represents an edge detection convolution kernel consisting of eight gradient operators. An edge detection kenel comprised of Kirsch gradient operators. . An edge detection kenel comprised of Robinson gradient operators. Initializes a new instance of the struct. The north gradient operator. The north-west gradient operator. The west gradient operator. The south-west gradient operator. The south gradient operator. The south-east gradient operator. The east gradient operator. The north-east gradient operator. Gets the North gradient operator. Gets the NorthWest gradient operator. Gets the West gradient operator. Gets the SouthWest gradient operator. Gets the South gradient operator. Gets the SouthEast gradient operator. Gets the East gradient operator. Gets the NorthEast gradient operator. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is equal to the parameter; otherwise, false. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is not equal to the parameter; otherwise, false. Represents an edge detection convolution kernel consisting of a single 2D gradient operator. An edge detection kernel containing a 3x3 Laplacian operator. An edge detection kernel containing a 5x5 Laplacian operator. An edge detection kernel containing a Laplacian of Gaussian operator. . Initializes a new instance of the struct. The 2D gradient operator. Gets the 2D gradient operator. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is equal to the parameter; otherwise, false. Checks whether two structures are equal. The left hand operand. The right hand operand. True if the parameter is not equal to the parameter; otherwise, false. Contains the kernels used for Kayyali edge detection Gets the horizontal gradient operator. Gets the vertical gradient operator. Contains the eight matrices used for Kirsch edge detection. . Gets the North gradient operator Gets the NorthWest gradient operator Gets the West gradient operator Gets the SouthWest gradient operator Gets the South gradient operator Gets the SouthEast gradient operator Gets the East gradient operator Gets the NorthEast gradient operator A factory for creating Laplacian kernel matrices. Creates a Laplacian matrix, 2nd derivative, of an arbitrary length. The length of the matrix sides The Contains Laplacian kernels of different sizes. . Gets the 3x3 Laplacian kernel Gets the 5x5 Laplacian kernel Gets the Laplacian of Gaussian kernel. Contains the kernels used for Prewitt edge detection Gets the horizontal gradient operator. Gets the vertical gradient operator. Contains the kernels used for RobertsCross edge detection Gets the horizontal gradient operator. Gets the vertical gradient operator. Contains the kernels used for Robinson edge detection. Gets the North gradient operator Gets the NorthWest gradient operator Gets the West gradient operator Gets the SouthWest gradient operator Gets the South gradient operator Gets the SouthEast gradient operator Gets the East gradient operator Gets the NorthEast gradient operator Contains the kernels used for Scharr edge detection Gets the horizontal gradient operator. Gets the vertical gradient operator. Contains the kernels used for Sobel edge detection Gets the horizontal gradient operator. Gets the vertical gradient operator. Provides a map of the convolution kernel sampling offsets. Initializes a new instance of the class. The memory allocator. Builds a map of the sampling offsets for the kernel clamped by the given bounds. The convolution kernel. The source bounds. Builds a map of the sampling offsets for the kernel clamped by the given bounds. The height (number of rows) of the convolution kernel to use. The width (number of columns) of the convolution kernel to use. The source bounds. A that contains data about a set of bokeh blur kernels The kernel parameters to use for the current set of complex kernels The kernel components to apply the bokeh blur effect Initializes a new instance of the struct. The kernel parameters The complex kernel components Provides parameters to be used in the . The mapping of initialized complex kernels and parameters, to speed up the initialization of new instances Gets the kernel scales to adjust the component values in each kernel Gets the available bokeh blur kernel parameters Gets the bokeh blur kernel data for the specified parameters. The value representing the size of the area to sample. The size of each kernel to compute. The number of components to use to approximate the original 2D bokeh blur convolution kernel. A instance with the kernel data for the current parameters. Gets the kernel parameters and scaling factor for the current count value in the current instance Creates the collection of complex 1D kernels with the specified parameters The parameters to use to normalize the kernels The value representing the size of the area to sample. The size of each kernel to compute. The scale factor for each kernel. Creates a complex 1D kernel with the specified parameters The value representing the size of the area to sample. The size of each kernel to compute. The scale factor for each kernel. The exponential parameter for each complex component The angle component for each complex component Normalizes the kernels with respect to A * real + B * imaginary The current convolution kernels to normalize The parameters to use to normalize the kernels A that contains parameters to apply a bokeh blur filter The size of the convolution kernel to use when applying the bokeh blur The number of complex components to use to approximate the bokeh kernel Initializes a new instance of the struct. The size of the kernel The number of kernel components A stack only, readonly, kernel matrix that can be indexed without bounds checks when compiled in release mode. An error diffusion dithering implementation. An error diffusion dithering implementation. Applies error diffusion based dithering using the Atkinson image dithering algorithm. Applies error diffusion based dithering using the Burks image dithering algorithm. Applies error diffusion based dithering using the Floyd–Steinberg image dithering algorithm. Applies error diffusion based dithering using the Jarvis, Judice, Ninke image dithering algorithm. Applies error diffusion based dithering using the Sierra2 image dithering algorithm. Applies error diffusion based dithering using the Sierra3 image dithering algorithm. Applies error diffusion based dithering using the Sierra Lite image dithering algorithm. Applies error diffusion based dithering using the Stevenson-Arce image dithering algorithm. Applies error diffusion based dithering using the Stucki image dithering algorithm. Initializes a new instance of the struct. The diffusion matrix. The starting offset within the matrix. Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Defines the contract for types that apply dithering to images. Transforms the quantized image frame applying a dither matrix. This method should be treated as destructive, altering the input pixels. The type of frame quantizer. The pixel format. The frame quantizer. The source image. The destination quantized frame. The region of interest bounds. Transforms the image frame applying a dither matrix. This method should be treated as destructive, altering the input pixels. The type of palette dithering processor. The pixel format. The palette dithering processor. The source image. The region of interest bounds. Implements an algorithm to alter the pixels of an image via palette dithering. The pixel format. Gets the configuration instance to use when performing operations. Gets the dithering palette. Gets the dithering scale used to adjust the amount of dither. Range 0..1. Returns the color from the dithering palette corresponding to the given color. The color to match. The match. An ordered dithering matrix with equal sides of arbitrary length An ordered dithering matrix with equal sides of arbitrary length Initializes a new instance of the struct. The length of the matrix sides Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are equal. The first source instance. The second source instance. The . Compares the two instances to determine whether they are unequal. The first source instance. The second source instance. The . Applies order dithering using the 2x2 Bayer dithering matrix. Applies order dithering using the 4x4 Bayer dithering matrix. Applies order dithering using the 8x8 Bayer dithering matrix. Applies order dithering using the 16x16 Bayer dithering matrix. Applies order dithering using the 3x3 ordered dithering matrix. A factory for creating ordered dither matrices. Creates an ordered dithering matrix with equal sides of arbitrary length. The length of the matrix sides The Allows the consumption a palette to dither an image. Initializes a new instance of the class. The ordered ditherer. Initializes a new instance of the class. The ordered ditherer. The dithering scale used to adjust the amount of dither. Initializes a new instance of the class. The dithering algorithm. The palette to select substitute colors from. Initializes a new instance of the class. The dithering algorithm. The dithering scale used to adjust the amount of dither. The palette to select substitute colors from. Gets the dithering algorithm to apply to the output image. Gets the dithering scale used to adjust the amount of dither. Range 0..1. Gets the palette to select substitute colors from. Allows the consumption a palette to dither an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Used to allow inlining of calls to . Internal for AOT Combines two images together by blending the pixels. Initializes a new instance of the class. The image to blend. The location to draw the blended image. The blending mode to use when drawing the image. The Alpha blending mode to use when drawing the image. The opacity of the image to blend. Gets the image to blend. Gets the location to draw the blended image. Gets the blending mode to use when drawing the image. Gets the Alpha blending mode to use when drawing the image. Gets the opacity of the image to blend. Combines two images together by blending the pixels. The pixel format of destination image. The pixel format of source image. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The foreground to blend with the currently processing image. The source for the current processor instance. The source area to process for the current processor instance. The location to draw the blended image. The blending mode to use when drawing the image. The Alpha blending mode to use when drawing the image. The opacity of the image to blend. Must be between 0 and 1. Gets the image to blend Gets the opacity of the image to blend Gets the pixel blender Gets the location to draw the blended image A implementing the draw logic for . An used by the row delegates for a given instance Applies the current pixel row delegate to a target row of preprocessed pixels. The target row of pixels to process. The initial horizontal and vertical offset for the input pixels to process. Defines an oil painting effect. Initializes a new instance of the class. The number of intensity levels. Higher values result in a broader range of color intensities forming part of the result image. The number of neighboring pixels used in calculating each individual pixel value. Gets the number of intensity levels. Gets the brush size. Applies oil painting effect processing to the image. Adapted from by Dewald Esterhuizen. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. A implementing the convolution logic for . Defines a pixelation effect of a given size. Initializes a new instance of the class. The size of the pixels. Must be greater than 0. is less than 0 or equal to 0. Gets or the pixel size. Applies a pixelation effect processing to the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The source for the current processor instance. The source area to process for the current processor instance. Applies a user defined row processing delegate to the image. Initializes a new instance of the class. The user defined, row processing delegate. The to apply during the pixel conversions. Gets the user defined row processing delegate to the image. Gets the to apply during the pixel conversions. A implementing the row processing logic for . The base class for all processors that accept a user defined row processing delegate. The pixel format. The row processor type. The to apply during the pixel conversions. Initializes a new instance of the class. The row processor to use to process each pixel row The configuration which allows altering default behaviour or extending the library. The to apply during the pixel conversions. The source for the current processor instance. The source area to process for the current processor instance. A implementing the convolution logic for . Applies a user defined, position aware, row processing delegate to the image. Initializes a new instance of the class. The user defined, position aware, row processing delegate. The to apply during the pixel conversions. Gets the user defined, position aware, row processing delegate. Gets the to apply during the pixel conversions. A implementing the row processing logic for . Converts the colors of the image recreating Achromatomaly (Color desensitivity) color blindness. Initializes a new instance of the class. Converts the colors of the image recreating Achromatopsia (Monochrome) color blindness. Initializes a new instance of the class. Applies a black and white filter matrix to the image. Initializes a new instance of the class. Applies a brightness filter matrix using the given amount. Initializes a new instance of the class. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing brighter results. The proportion of the conversion. Must be greater than or equal to 0. Gets the proportion of the conversion Applies a contrast filter matrix using the given amount. Initializes a new instance of the class. A value of 0 will create an image that is completely gray. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing results with more contrast. The proportion of the conversion. Must be greater than or equal to 0. Gets the proportion of the conversion. Converts the colors of the image recreating Deuteranomaly (Green-Weak) color blindness. Initializes a new instance of the class. Converts the colors of the image recreating Deuteranopia (Green-Blind) color blindness. Initializes a new instance of the class. Defines a free-form color filter by a . Initializes a new instance of the class. The matrix used to apply the image filter Gets the used to apply the image filter. Provides methods that accept a matrix to apply free-form filters to images. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The source for the current processor instance. The source area to process for the current processor instance. A implementing the convolution logic for . Applies a grayscale filter matrix using the given amount and the formula as specified by ITU-R Recommendation BT.601 Initializes a new instance of the class. The proportion of the conversion. Must be between 0 and 1. Gets the proportion of the conversion Applies a grayscale filter matrix using the given amount and the formula as specified by ITU-R Recommendation BT.709 Initializes a new instance of the class. The proportion of the conversion. Must be between 0 and 1. Gets the proportion of the conversion. Applies a hue filter matrix using the given angle of rotation in degrees Initializes a new instance of the class. The angle of rotation in degrees Gets the angle of rotation in degrees Applies a filter matrix that inverts the colors of an image Initializes a new instance of the class. The proportion of the conversion. Must be between 0 and 1. Gets the proportion of the conversion Applies a filter matrix recreating an old Kodachrome camera effect matrix to the image Initializes a new instance of the class. Applies a lightness filter matrix using the given amount. Initializes a new instance of the class. A value of 0 will create an image that is completely black. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over 1 are allowed, providing lighter results. The proportion of the conversion. Must be greater than or equal to 0. Gets the proportion of the conversion Converts the colors of the image recreating an old Lomograph effect. Initializes a new instance of the class. Graphics options to use within the processor. Gets the options effecting blending and composition Converts the colors of the image recreating an old Lomograph effect. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the parameters. The source for the current processor instance. The source area to process for the current processor instance. Applies an opacity filter matrix using the given amount. Initializes a new instance of the class. The proportion of the conversion. Must be between 0 and 1. Gets the proportion of the conversion. Converts the colors of the image recreating an old Polaroid effect. Initializes a new instance of the class. Graphics options to use within the processor. Gets the options effecting blending and composition Converts the colors of the image recreating an old Polaroid effect. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the parameters. The source for the current processor instance. The source area to process for the current processor instance. Converts the colors of the image recreating Protanomaly (Red-Weak) color blindness. Initializes a new instance of the class. Converts the colors of the image recreating Protanopia (Red-Blind) color blindness. Initializes a new instance of the class. Applies a saturation filter matrix using the given amount. Initializes a new instance of the class. A value of 0 is completely un-saturated. A value of 1 leaves the input unchanged. Other values are linear multipliers on the effect. Values of amount over 1 are allowed, providing super-saturated results The proportion of the conversion. Must be greater than or equal to 0. Gets the proportion of the conversion Applies a sepia filter matrix using the given amount. Initializes a new instance of the class. The proportion of the conversion. Must be between 0 and 1. Gets the proportion of the conversion Converts the colors of the image recreating Tritanomaly (Blue-Weak) color blindness. Initializes a new instance of the class. Converts the colors of the image recreating Tritanopia (Blue-Blind) color blindness. Initializes a new instance of the class. Defines an algorithm to alter the pixels of a cloned image. Creates a pixel specific that is capable of executing the processing algorithm on an . The pixel type. The configuration which allows altering default behaviour or extending the library. The source image. Cannot be null. The structure that specifies the portion of the image object to draw. The Implements an algorithm to alter the pixels of a cloned image. The pixel format. Clones the specified and executes the process against the clone. The . Defines an algorithm to alter the pixels of an image. Non-generic implementations are responsible for: 1. Encapsulating the parameters of the algorithm. 2. Creating the generic instance to execute the algorithm. Creates a pixel specific that is capable of executing the processing algorithm on an . The pixel type. The configuration which allows altering default behaviour or extending the library. The source image. Cannot be null. The structure that specifies the portion of the image object to draw. The Implements an algorithm to alter the pixels of an image. The pixel format. Executes the process against the specified . Executes the processor against the given source image and rectangle bounds. The processor. The configuration which allows altering default behaviour or extending the library. The source image. The source bounds. The base class for all pixel specific image processors. Allows the application of processing algorithms to the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source for the current processor instance. The source area to process for the current processor instance. Gets The source for the current processor instance. Gets The source area to process for the current processor instance. Gets the instance to use when performing operations. Applies the processor to a single image frame. the source image. This method is called before the process is applied to prepare the processor. This method is called before the process is applied to prepare the processor. The source image. Cannot be null. Applies the process to the specified portion of the specified at the specified location and with the specified size. The source image. Cannot be null. This method is called after the process is applied to prepare the processor. The source image. Cannot be null. This method is called after the process is applied to prepare the processor. Disposes the object and frees resources for the Garbage Collector. Whether to dispose managed and unmanaged objects. Applies an adaptive histogram equalization to the image. The image is split up in tiles. For each tile a cumulative distribution function (cdf) is calculated. To calculate the final equalized pixel value, the cdf value of four adjacent tiles will be interpolated. Initializes a new instance of the class. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The number of tiles the image is split into (horizontal and vertically). Minimum value is 2. Maximum value is 100. Gets the number of tiles the image is split into (horizontal and vertically) for the adaptive histogram equalization. Applies an adaptive histogram equalization to the image. The image is split up in tiles. For each tile a cumulative distribution function (cdf) is calculated. To calculate the final equalized pixel value, the cdf value of four adjacent tiles will be interpolated. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The number of tiles the image is split into (horizontal and vertically). Minimum value is 2. Maximum value is 100. The source for the current processor instance. The source area to process for the current processor instance. Gets the number of tiles the image is split into (horizontal and vertically) for the adaptive histogram equalization. Processes the part of a corner tile which was previously left out. It consists of 1 / 4 of a tile and does not need interpolation. The source image. The lookup table to remap the grey values. The x-position in the CDF lookup map. The y-position in the CDF lookup map. X start position. X end position. Y start position. Y end position. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Processes a border column of the image which is half the size of the tile width. The source image. The pre-computed lookup tables to remap the grey values for each tiles. The X index of the lookup table to use. The source image height. The number of vertical tiles. The height of a tile. X start position in the image. X end position of the image. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Processes a border row of the image which is half of the size of the tile height. The source image. The pre-computed lookup tables to remap the grey values for each tiles. The Y index of the lookup table to use. The source image width. The number of horizontal tiles. The width of a tile. Y start position in the image. Y end position of the image. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Bilinear interpolation between four adjacent tiles. The pixel to remap the grey value from. The pre-computed lookup tables to remap the grey values for each tiles. The number of tiles in the x-direction. The number of tiles in the y-direction. X position inside the tile. Y position inside the tile. X index of the top left lookup table to use. Y index of the top left lookup table to use. Width of one tile in pixels. Height of one tile in pixels. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. A re-mapped grey value. Linear interpolation between two tiles. The pixel to remap the grey value from. The CDF lookup map. X position inside the first tile. Y position inside the first tile. X position inside the second tile. Y position inside the second tile. Position inside the tile. Width of the tile. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. A re-mapped grey value. Bilinear interpolation between four tiles. The interpolation value in x direction in the range of [0, 1]. The interpolation value in y direction in the range of [0, 1]. Luminance from top left tile. Luminance from right top tile. Luminance from left bottom tile. Luminance from right bottom tile. Interpolated Luminance. Linear interpolation between two grey values. The left value. The right value. The interpolation value between the two values in the range of [0, 1]. The interpolated value. Contains the results of the cumulative distribution function for all tiles. Used for storing the minimum value for each CDF entry. Used for storing the LUT for each CDF entry. Remaps the grey value with the cdf. The tiles x-position. The tiles y-position. The original luminance. The remapped luminance. Applies an adaptive histogram equalization to the image using an sliding window approach. Initializes a new instance of the class. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The number of tiles the image is split into (horizontal and vertically). Minimum value is 2. Maximum value is 100. Gets the number of tiles the image is split into (horizontal and vertically) for the adaptive histogram equalization. Applies an adaptive histogram equalization to the image using an sliding window approach. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The number of tiles the image is split into (horizontal and vertically). Minimum value is 2. Maximum value is 100. The source for the current processor instance. The source area to process for the current processor instance. Gets the number of tiles the image is split into (horizontal and vertically) for the adaptive histogram equalization. Get the a pixel row at a given position with a length of the tile width. Mirrors pixels which exceeds the edges. The source image. Pre-allocated pixel row span of the size of a the tile width. The x position. The y position. The width in pixels of a tile. The configuration. Get the a pixel row at a given position with a length of the tile width. The source image. Pre-allocated pixel row span of the size of a the tile width. The x position. The y position. The width in pixels of a tile. The configuration. Adds a column of grey values to the histogram. The reference to the span of grey values to add. The reference to the histogram span. The number of different luminance levels. The grey values span length. Removes a column of grey values from the histogram. The reference to the span of grey values to remove. The reference to the histogram span. The number of different luminance levels. The grey values span length. Applies the sliding window equalization to one column of the image. The window is moved from top to bottom. Moving the window one pixel down requires to remove one row from the top of the window from the histogram and adding a new row at the bottom. Initializes a new instance of the struct. The configuration. The histogram processor. The source image. The memory allocator. The target pixels. about the sliding window dimensions. The y start position. The y end position. if set to true the borders of the image will not be checked. Defines a global histogram equalization applicable to an . Initializes a new instance of the class. The number of luminance levels. A value indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. Applies a global histogram equalization to the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicating whether to clip the histogram bins at a specific value. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The source for the current processor instance. The source area to process for the current processor instance. A implementing the grayscale levels logic for . A implementing the cdf application levels logic for . Enumerates the different types of defined histogram equalization methods. A global histogram equalization. Adaptive histogram equalization using a tile interpolation approach. Adaptive histogram equalization using sliding window. Slower then the tile interpolation mode, but can yield to better results. Data container providing the different options for the histogram equalization. Gets or sets the histogram equalization method to use. Defaults to global histogram equalization. Gets or sets the number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Defaults to 256. Gets or sets a value indicating whether to clip the histogram bins at a specific value. It is recommended to use clipping when the AdaptiveTileInterpolation method is used, to suppress artifacts which can occur on the borders of the tiles. Defaults to false. Gets or sets the histogram clip limit. Adaptive histogram equalization may cause noise to be amplified in near constant regions. To reduce this problem, histogram bins which exceed a given limit will be capped at this value. The exceeding values will be redistributed equally to all other bins. The clipLimit depends on the size of the tiles the image is split into and therefore the image size itself. Defaults to 350. For more information, see also: https://en.wikipedia.org/wiki/Adaptive_histogram_equalization#Contrast_Limited_AHE Gets or sets the number of tiles the image is split into (horizontal and vertically) for the adaptive histogram equalization. Defaults to 8. Defines a processor that normalizes the histogram of an image. Initializes a new instance of the class. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicates, if histogram bins should be clipped. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. Gets the number of luminance levels. Gets a value indicating whether to clip the histogram bins at a specific value. Gets the histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. Creates the that implements the algorithm defined by the given . The . The . Defines a processor that normalizes the histogram of an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The number of different luminance levels. Typical values are 256 for 8-bit grayscale images or 65536 for 16-bit grayscale images. Indicates, if histogram bins should be clipped. The histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. The source for the current processor instance. The source area to process for the current processor instance. Gets the number of luminance levels. Gets a value indicating whether to clip the histogram bins at a specific value. Gets the histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. Calculates the cumulative distribution function. The reference to the array holding the cdf. The reference to the histogram of the input image. Index of the maximum of the histogram. The first none zero value of the cdf. AHE tends to over amplify the contrast in near-constant regions of the image, since the histogram in such regions is highly concentrated. Clipping the histogram is meant to reduce this effect, by cutting of histogram bin's which exceed a certain amount and redistribute the values over the clip limit to all other bins equally. The histogram to apply the clipping. Histogram clip limit. Histogram bins which exceed this limit, will be capped at this value. Convert the pixel values to grayscale using ITU-R Recommendation BT.709. The pixel to get the luminance from The number of luminance levels (256 for 8 bit, 65536 for 16 bit grayscale images) Defines a processing operation to replace the background color of an . Initializes a new instance of the class. The options defining blending algorithm and amount. The to set the background color to. Gets the Graphics options to alter how processor is applied. Gets the background color value. Sets the background color of the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Defines a radial glow effect applicable to an . Initializes a new instance of the class. The options effecting blending and composition. The color or the glow. Initializes a new instance of the class. The options effecting blending and composition. The color or the glow. The radius of the glow. Gets the options effecting blending and composition. Gets the glow color to apply. Gets the the radius. An that applies a radial glow effect an . The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Defines a radial vignette effect applicable to an . Initializes a new instance of the class. The options effecting blending and composition. The color of the vignette. Initializes a new instance of the class. The options effecting blending and composition. The color of the vignette. The x-radius. The y-radius. Gets the options effecting blending and composition Gets the vignette color to apply. Gets the the x-radius. Gets the the y-radius. An that applies a radial vignette effect to an . The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. A pixel sampling strategy that enumerates a limited amount of rows from different frames, if the total number of pixels is over a threshold. Initializes a new instance of the class. Initializes a new instance of the class. The maximum number of pixels to process. always scan at least this portion of total pixels within the image. Gets the maximum number of pixels to process. (The threshold.) Gets a value indicating: always scan at least this portion of total pixels within the image. The default is 0.1 (10%). Gets the closest color to the supplied color based upon the Euclidean distance. The pixel format. This class is not threadsafe and should not be accessed in parallel. Doing so will result in non-idempotent results. Initializes a new instance of the class. The configuration. The color palette to map from. Gets the color palette of this . The palette memory is owned by the palette source that created it. Returns the closest color in the palette and the index of that pixel. The palette contents must match the one used in the constructor. The color to match. The matched color. The index. Clears the map, resetting it to use the given palette. The color palette to map from. Returns the Euclidean distance squared between two specified points. The first point. The second point. The distance squared. A cache for storing color distance matching results. The granularity of the cache has been determined based upon the current suite of test images and provides the lowest possible memory usage while providing enough match accuracy. Entry count is currently limited to 1185921 entries (2371842 bytes ~2.26MB). Clears the cache resetting each entry to empty. A pixel sampling strategy that enumerates all pixels. Provides an abstraction to enumerate pixel regions within a multi-framed . Enumerates pixel regions within the image as . The image. The pixel type. An enumeration of pixel regions. Provides methods for allowing quantization of images pixels with configurable dithering. Gets the quantizer options defining quantization rules. Creates the generic frame quantizer. The to configure internal operations. The pixel format. The . Creates the generic frame quantizer. The pixel format. The to configure internal operations. The options to create the quantizer with. The . Provides methods to allow the execution of the quantization process on an image frame. The pixel format. Gets the configuration. Gets the quantizer options defining quantization rules. Gets the quantized color palette. The palette has not been built via . Adds colors to the quantized palette from the given pixel source. The of source pixels to register. Quantizes an image frame and return the resulting output pixels. The source image frame to quantize. The bounds within the frame to quantize. A representing a quantized version of the source frame pixels. Only executes the second (quantization) step. The palette has to be built by calling . To run both steps, use . Returns the index and color from the quantized palette corresponding to the given color. The color to match. The matched color. The index. Allows the quantization of images pixels using Octrees. Initializes a new instance of the class using the default . Initializes a new instance of the class. The quantizer options defining quantization rules. Encapsulates methods to calculate the color palette if an image using an Octree pattern. The pixel format. Initializes a new instance of the struct. The configuration which allows altering default behaviour or extending the library. The quantizer options defining quantization rules. Class which does the actual quantization. The root of the Octree Maximum number of significant bits in the image Store the last node quantized Cache the previous color quantized Initializes a new instance of the class. The maximum number of significant bits in the image Gets or sets the number of leaves in the tree Gets the array of reducible nodes Add a given color value to the Octree The color to add. Convert the nodes in the Octree to a palette with a maximum of colorCount colors The palette to fill. The maximum number of colors The palette index, used to calculate the final size of the palette. Get the palette index for the passed color The color to match. The index. Keep track of the previous node that was quantized The node last quantized Reduce the depth of the tree Class which encapsulates each node in the tree Pointers to any child nodes Flag indicating that this is a leaf node Number of pixels in this node Red component Green Component Blue component The index of this node in the palette Initializes a new instance of the class. The level in the tree = 0 - 7. The number of significant color bits in the image. The tree to which this node belongs. Gets the next reducible node Add a color into the tree The color to add. The number of significant color bits. The level in the tree. The tree to which this node belongs. Reduce this node by removing all of its children The number of leaves removed Traverse the tree, building up the color palette The palette The current palette index Return the palette index for the passed color The pixel data. The level. The representing the index of the pixel in the palette. Gets the color index at the given level. The color. The node level. The index. Increment the color count and add to the color information The pixel to add. Allows the quantization of images pixels using color palettes. Initializes a new instance of the class. The color palette. Initializes a new instance of the class. The color palette. The quantizer options defining quantization rules. Encapsulates methods to create a quantized image based upon the given palette. The pixel format. Initializes a new instance of the struct. The configuration which allows altering default behaviour or extending the library. The quantizer options defining quantization rules. The palette to use. Defines quantization processing for images to reduce the number of colors used in the image palette. Initializes a new instance of the class. The quantizer used to reduce the color palette. Gets the quantizer. Enables the quantization of images to reduce the number of colors used in the image palette. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The quantizer used to reduce the color palette. The source for the current processor instance. The source area to process for the current processor instance. Contains color quantization specific constants. The minimum number of colors to use when quantizing an image. The maximum number of colors to use when quantizing an image. The minumim dithering scale used to adjust the amount of dither. The max dithering scale used to adjust the amount of dither. Gets the default dithering algorithm to use. Defines options for quantization. Gets or sets the algorithm to apply to the output image. Defaults to ; set to for no dithering. Gets or sets the dithering scale used to adjust the amount of dither. Range 0..1. Defaults to . Gets or sets the maximum number of colors to hold in the color palette. Range 0..256. Defaults to . Contains utility methods for instances. Helper method for throwing an exception when a frame quantizer palette has been requested but not built yet. The pixel format. The frame quantizer palette. The palette has not been built via Execute both steps of the quantization. The pixel specific quantizer. The source image frame to quantize. The bounds within the frame to quantize. The pixel type. A representing a quantized version of the source frame pixels. Quantizes an image frame and return the resulting output pixels. The type of frame quantizer. The pixel format. The pixel specific quantizer. The source image frame to quantize. The bounds within the frame to quantize. A representing a quantized version of the source frame pixels. A palette quantizer consisting of web safe colors as defined in the CSS Color Module Level 4. Initializes a new instance of the class. Initializes a new instance of the class. The quantizer options defining quantization rules. A palette quantizer consisting of colors as defined in the original second edition of Werner’s Nomenclature of Colours 1821. The hex codes were collected and defined by Nicholas Rougeux Initializes a new instance of the class. Initializes a new instance of the class. The quantizer options defining quantization rules. Allows the quantization of images pixels using Xiaolin Wu's Color Quantizer Initializes a new instance of the class using the default . Initializes a new instance of the class. The quantizer options defining quantization rules. An implementation of Wu's color quantizer with alpha channel. Based on C Implementation of Xiaolin Wu's Color Quantizer (v. 2) (see Graphics Gems volume II, pages 126-133) (). This adaptation is based on the excellent JeremyAnsel.ColorQuant by Jérémy Ansel Algorithm: Greedy orthogonal bipartition of RGB space for variance minimization aided by inclusion-exclusion tricks. For speed no nearest neighbor search is done. Slightly better performance can be expected by more sophisticated but more expensive versions. The pixel format. The index bits. 6 in original code. The index alpha bits. 3 in original code. The index count. The index alpha count. The table length. Now 1185921. originally 2471625. Initializes a new instance of the struct. The configuration which allows altering default behaviour or extending the library. The quantizer options defining quantization rules. Gets the index of the given color in the palette. The red value. The green value. The blue value. The alpha value. The index. Computes sum over a box of any given statistic. The cube. The moment. The result. Computes part of Volume(cube, moment) that doesn't depend on RMax, GMax, BMax, or AMax (depending on direction). The cube. The direction. The moment. The result. Computes remainder of Volume(cube, moment), substituting position for RMax, GMax, BMax, or AMax (depending on direction). The cube. The direction. The position. The moment. The result. Builds a 3-D color histogram of counts, r/g/b, c^2. The source data. The bounds within the source image to quantize. Converts the histogram into moments so that we can rapidly calculate the sums of the above quantities over any desired box. The memory allocator used for allocating buffers. Computes the weighted variance of a box cube. The cube. The . We want to minimize the sum of the variances of two sub-boxes. The sum(c^2) terms can be ignored since their sum over both sub-boxes is the same (the sum for the whole box) no matter where we split. The remaining terms have a minus sign in the variance formula, so we drop the minus sign and maximize the sum of the two terms. The cube. The direction. The first position. The last position. The cutting point. The whole moment. The . Cuts a box. The first set. The second set. Returns a value indicating whether the box has been split. Marks a color space tag. The cube. A label. Builds the cube. Moment of r*P(c). Moment of g*P(c). Moment of b*P(c). Moment of a*P(c). Moment of P(c). Moment of c^2*P(c). Represents a box color cube. Gets or sets the min red value, exclusive. Gets or sets the max red value, inclusive. Gets or sets the min green value, exclusive. Gets or sets the max green value, inclusive. Gets or sets the min blue value, exclusive. Gets or sets the max blue value, inclusive. Gets or sets the min alpha value, exclusive. Gets or sets the max alpha value, inclusive. Gets or sets the volume. Defines a crop operation on an image. Initializes a new instance of the class. The target cropped rectangle. The source image size. Gets the width. Provides methods to allow the cropping of an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The source for the current processor instance. The source area to process for the current processor instance. A implementing the processor logic for . Initializes a new instance of the struct. The target processing bounds for the current instance. The source for the current instance. The destination for the current instance. Represents an error that occurs during a transform operation. Initializes a new instance of the class. Initializes a new instance of the class with a specified error message. The message that describes the error. Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified. Defines cropping operation that preserves areas of highest entropy. Initializes a new instance of the class. Initializes a new instance of the class. The threshold to split the image. Must be between 0 and 1. is less than 0 or is greater than 1. Gets the entropy threshold value. Provides methods to allow the cropping of an image to preserve areas of highest entropy. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The source for the current processor instance. The source area to process for the current processor instance. Gets the bounding from the given points. The designating the top left position. The designating the bottom right position. The bounding . Finds the bounding rectangle based on the first instance of any color component other than the given one. The to search within. The color component value to remove. The channel to test against. The . Encapsulates an interpolation algorithm for resampling images. Gets the radius in which to sample pixels. Gets the result of the interpolation algorithm. The value to process. The Applies a transformation upon an image. The pixel format. The transforming image processor. Implements an algorithm to alter the pixels of an image via resampling transforms. The pixel format. Applies a resampling transform with the given sampler. The type of sampler. The sampler to use. Encapsulate an algorithm to swizzle pixels in an image. Gets the size of the image after transformation. Applies the swizzle transformation to a given point. Point to transform. The transformed point. Defines an affine transformation applicable on an . Initializes a new instance of the class. The transform matrix. The sampler to perform the transform operation. The target dimensions. Gets the sampler to perform interpolation of the transform operation. Gets the matrix used to supply the affine transform. Gets the destination size to constrain the transformed image to. Provides the base methods to perform affine transforms on an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Adjusts an image so that its orientation is suitable for viewing. Adjustments are based on EXIF metadata embedded in the image. Adjusts an image so that its orientation is suitable for viewing. Adjustments are based on EXIF metadata embedded in the image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source for the current processor instance. The source area to process for the current processor instance. Returns the current EXIF orientation The image to auto rotate. The Defines a flipping around the center point of the image. Initializes a new instance of the class. The used to perform flipping. Gets the used to perform flipping. Provides methods that allow the flipping of an image around its center point. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The . The source for the current processor instance. The source area to process for the current processor instance. Swaps the image at the X-axis, which goes horizontally through the middle at half the height of the image. The source image to apply the process to. The configuration. Swaps the image at the Y-axis, which goes vertically through the middle at half of the width of the image. The source image to apply the process to. The configuration. Utility methods for linear transforms. Returns the sampling radius for the given sampler and dimensions. The type of resampler. The resampler sampler. The source size. The destination size. The . Gets the start position (inclusive) for a sampling range given the radius, center position and max constraint. The radius. The center position. The min allowed amouunt. The max allowed amouunt. The . Gets the end position (inclusive) for a sampling range given the radius, center position and max constraint. The radius. The center position. The min allowed amouunt. The max allowed amouunt. The . Defines a projective transformation applicable to an . Initializes a new instance of the class. The transform matrix. The sampler to perform the transform operation. The target dimensions. Gets the sampler to perform interpolation of the transform operation. Gets the matrix used to supply the projective transform. Gets the destination size to constrain the transformed image to. Provides the base methods to perform non-affine transforms on an image. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Defines a rotation applicable to an . Initializes a new instance of the class. The angle of rotation in degrees. The source image size Initializes a new instance of the class. The angle of rotation in degrees. The sampler to perform the rotating operation. The source image size Gets the angle of rotation in degrees. Provides methods that allow the rotating of images. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The defining the processor parameters. The source for the current processor instance. The source area to process for the current processor instance. Wraps a given angle in degrees so that it falls withing the 0-360 degree range The angle of rotation in degrees. The . Rotates the images with an optimized method when the angle is 90, 180 or 270 degrees. The source image. The destination image. The configuration. The Rotates the image 180 degrees clockwise at the centre point. The source image. The destination image. The configuration. Rotates the image 270 degrees clockwise at the centre point. The source image. The destination image. The configuration. Rotates the image 90 degrees clockwise at the centre point. The source image. The destination image. The configuration. Defines a skew transformation applicable to an . Initializes a new instance of the class. The angle in degrees to perform the skew along the x-axis. The angle in degrees to perform the skew along the y-axis. The source image size Initializes a new instance of the class. The angle in degrees to perform the skew along the x-axis. The angle in degrees to perform the skew along the y-axis. The sampler to perform the skew operation. The source image size Gets the angle of rotation along the x-axis in degrees. Gets the angle of rotation along the y-axis in degrees. The function implements the bicubic kernel algorithm W(x) as described on Wikipedia A commonly used algorithm within image processing that preserves sharpness better than triangle interpolation. The function implements the box algorithm. Similar to nearest neighbor when upscaling. When downscaling the pixels will average, merging together. Cubic filters contain a collection of different filters of varying B-Spline and Cardinal values. With these two values you can generate any smoothly fitting (continuious first derivative) piece-wise cubic filter. The Catmull-Rom filter is a well known standard Cubic Filter often used as a interpolation function. This filter produces a reasonably sharp edge, but without a the pronounced gradient change on large scale image enlargements that a 'Lagrange' filter can produce. The Hermite filter is type of smoothed triangular interpolation Filter, This filter rounds off strong edges while preserving flat 'color levels' in the original image. The function implements the Mitchell-Netravali algorithm as described on Wikipedia The function implements the Robidoux algorithm. The function implements the Robidoux Sharp algorithm. The function implements the spline algorithm. The function implements the Robidoux Sharp algorithm. Initializes a new instance of the struct. The sampling radius. The B-Spline value. The Cardinal cubic value. The function implements the Lanczos kernel algorithm as described on Wikipedia. Implements the Lanczos kernel algorithm with a radius of 2. Implements the Lanczos kernel algorithm with a radius of 3. Implements the Lanczos kernel algorithm with a radius of 5. Implements the Lanczos kernel algorithm with a radius of 8. Initializes a new instance of the struct. The sampling radius. The function implements the nearest neighbor algorithm. This uses an unscaled filter which will select the closest pixel to the new pixels position. The function implements the triangle (bilinear) algorithm. Bilinear interpolation can be used where perfect image transformation with pixel matching is impossible, so that one can calculate and assign appropriate intensity values to pixels. The function implements the welch algorithm. Provides methods to help calculate the target rectangle when resizing using the enumeration. Calculates the target location and bounds to perform the resize operation against. The source image size. The resize options. The tuple representing the location and the bounds Points to a collection of weights allocated in . Initializes a new instance of the struct. Gets the start index for the destination row. Gets the length of the kernel. Gets the span representing the portion of the that this window covers. The . Computes the sum of vectors in 'rowSpan' weighted by weight values, pointed by this instance. The input span of vectors The weighted sum Copy the contents of altering to the value . Provides resize kernel values from an optimized contiguous memory region. Gets the length of the destination row/column Gets the maximum diameter of the kernels. Gets a string of information to help debugging Disposes instance releasing it's backing buffer. Disposes the object and frees resources for the Garbage Collector. Whether to dispose of managed and unmanaged objects. Returns a for an index value between 0 and DestinationSize - 1. Computes the weights to apply at each pixel when resizing. The type of sampler. The The destination size The source size The to use for buffer allocations The Initializes the kernel map. Builds a for the row (in ) referencing the data at row within , so the data reusable by other data rows. Returns a referencing values of at row . Memory-optimized where repeating rows are stored only once. Defines an image resizing operation with the given and dimensional parameters. Initializes a new instance of the class. The resize options. The source image size. Gets the destination width. Gets the destination height. Gets the resize rectangle. Gets the resize options. Implements resizing of images using various resamplers. The pixel format. Implements the resize algorithm using a sliding window of size maximized by . The height of the window is a multiple of the vertical kernel's maximum diameter. When sliding the window, the contents of the bottom window band are copied to the new top band. For more details, and visual explanation, see "ResizeWorker.pptx". Defines a swizzle operation on an image. The swizzle function type. Initializes a new instance of the class. The swizzler operation. Gets the swizzler operation. The base class for all transform processors. Any processor that changes the dimensions of the image should inherit from this. The pixel format. Initializes a new instance of the class. The configuration which allows altering default behaviour or extending the library. The source for the current processor instance. The source area to process for the current processor instance. Contains helper methods for working with transforms. Updates the dimensional metadata of a transformed image The pixel format. The image to update Contains utility methods for working with transforms. Returns a value that indicates whether the specified matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The transform matrix. Returns a value that indicates whether the specified matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The transform matrix. Returns a value that indicates whether the specified matrix contains any values that are not a number . The transform matrix. The . Returns a value that indicates whether the specified matrix contains any values that are not a number . The transform matrix. The . Applies the projective transform against the given coordinates flattened into the 2D space. The "x" vector coordinate. The "y" vector coordinate. The transform matrix. The . Creates a centered rotation matrix using the given rotation in degrees and the source size. The amount of rotation, in degrees. The source image size. The . Creates a centered rotation matrix using the given rotation in radians and the source size. The amount of rotation, in radians. The source image size. The . Creates a centered skew matrix from the give angles in degrees and the source size. The X angle, in degrees. The Y angle, in degrees. The source image size. The . Creates a centered skew matrix from the give angles in radians and the source size. The X angle, in radians. The Y angle, in radians. The source image size. The . Gets the centered transform matrix based upon the source and destination rectangles. The source image bounds. The transformation matrix. The Creates a matrix that performs a tapering projective transform. The rectangular size of the image being transformed. An enumeration that indicates the side of the rectangle that tapers. An enumeration that indicates on which corners to taper the rectangle. The amount to taper. The Returns the rectangle bounds relative to the source for the given transformation matrix. The source rectangle. The transformation matrix. The . Returns the rectangle relative to the source for the given transformation matrix. The source rectangle. The transformation matrix. The . Returns the size relative to the source for the given transformation matrix. The source size. The transformation matrix. The . Returns the rectangle relative to the source for the given transformation matrix. The source rectangle. The transformation matrix. The . Returns the size relative to the source for the given transformation matrix. The source size. The transformation matrix. The . A helper class for constructing instances for use in projective transforms. Prepends a matrix that performs a tapering projective transform. An enumeration that indicates the side of the rectangle that tapers. An enumeration that indicates on which corners to taper the rectangle. The amount to taper. The . Appends a matrix that performs a tapering projective transform. An enumeration that indicates the side of the rectangle that tapers. An enumeration that indicates on which corners to taper the rectangle. The amount to taper. The . Prepends a centered rotation matrix using the given rotation in degrees. The amount of rotation, in degrees. The . Prepends a centered rotation matrix using the given rotation in radians. The amount of rotation, in radians. The . Prepends a centered rotation matrix using the given rotation in degrees at the given origin. The amount of rotation, in radians. The rotation origin point. The . Prepends a centered rotation matrix using the given rotation in radians at the given origin. The amount of rotation, in radians. The rotation origin point. The . Appends a centered rotation matrix using the given rotation in degrees. The amount of rotation, in degrees. The . Appends a centered rotation matrix using the given rotation in radians. The amount of rotation, in radians. The . Appends a centered rotation matrix using the given rotation in degrees at the given origin. The amount of rotation, in radians. The rotation origin point. The . Appends a centered rotation matrix using the given rotation in radians at the given origin. The amount of rotation, in radians. The rotation origin point. The . Prepends a scale matrix from the given uniform scale. The uniform scale. The . Prepends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Prepends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Appends a scale matrix from the given uniform scale. The uniform scale. The . Appends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Appends a scale matrix from the given vector scale. The horizontal and vertical scale. The . Prepends a centered skew matrix from the give angles in degrees. The X angle, in degrees. The Y angle, in degrees. The . Prepends a centered skew matrix from the give angles in radians. The X angle, in radians. The Y angle, in radians. The . Prepends a skew matrix using the given angles in degrees at the given origin. The X angle, in degrees. The Y angle, in degrees. The skew origin point. The . Prepends a skew matrix using the given angles in radians at the given origin. The X angle, in radians. The Y angle, in radians. The skew origin point. The . Appends a centered skew matrix from the give angles in degrees. The X angle, in degrees. The Y angle, in degrees. The . Appends a centered skew matrix from the give angles in radians. The X angle, in radians. The Y angle, in radians. The . Appends a skew matrix using the given angles in degrees at the given origin. The X angle, in degrees. The Y angle, in degrees. The skew origin point. The . Appends a skew matrix using the given angles in radians at the given origin. The X angle, in radians. The Y angle, in radians. The skew origin point. The . Prepends a translation matrix from the given vector. The translation position. The . Prepends a translation matrix from the given vector. The translation position. The . Appends a translation matrix from the given vector. The translation position. The . Appends a translation matrix from the given vector. The translation position. The . Prepends a raw matrix. The matrix to prepend. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Appends a raw matrix. The matrix to append. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Returns the combined matrix for a given source size. The source image size. The . Returns the combined matrix for a given source rectangle. The rectangle in the source image. The resultant matrix is degenerate containing one or more values equivalent to or a zero determinant and therefore cannot be used for linear transforms. The . Provides enumeration over how the image should be resized. Crops the resized image to fit the bounds of its container. Pads the resized image to fit the bounds of its container. If only one dimension is passed, will maintain the original aspect ratio. Pads the image to fit the bound of the container without resizing the original source. When downscaling, performs the same functionality as Constrains the resized image to fit the bounds of its container maintaining the original aspect ratio. Resizes the image until the shortest side reaches the set given dimension. Upscaling is disabled in this mode and the original image will be returned if attempted. Stretches the resized image to fit the bounds of its container. The target location and size of the resized image has been manually set. The resize options for resizing images against certain modes. Gets or sets the resize mode. Gets or sets the anchor position. Gets or sets the center coordinates. Gets or sets the target size. Gets or sets the sampler to perform the resize operation. Gets or sets a value indicating whether to compress or expand individual pixel colors the value on processing. Gets or sets the target rectangle to resize into. Gets or sets a value indicating whether to premultiply the alpha (if it exists) during the resize operation. Gets or sets the color to use as a background when padding an image. Provides enumeration over how the image should be rotated. Do not rotate the image. Rotate the image by 90 degrees clockwise. Rotate the image by 180 degrees clockwise. Rotate the image by 270 degrees clockwise. Enumerates the various options which determine how to taper corners Taper the left or top corner Taper the right or bottom corner Taper the both sets of corners Enumerates the various options which determine which side to taper Taper the left side Taper the top side Taper the right side Taper the bottom side Specifies the position in a stream to use for reading. Specifies the beginning of a stream. Specifies the current position within a stream. Provides methods to protect against invalid parameters for a DEBUG build. Provides methods to protect against invalid parameters for a DEBUG build. Verifies whether a specific condition is met, throwing an exception if it's false. The condition The error message Verifies whether a condition (indicating disposed state) is met, throwing an ObjectDisposedException if it's true. Whether the object is disposed. The name of the object. Verifies, that the target span is of same size than the 'other' span. The element type of the spans The target span. The 'other' span to compare 'target' to. The name of the parameter that is to be checked. has a different size than Verifies, that the `target` span has the length of 'minSpan', or longer. The element type of the spans The target span. The 'minSpan' span to compare 'target' to. The name of the parameter that is to be checked. has less items than Ensures that the value is not null. The target object, which cannot be null. The name of the parameter that is to be checked. The type of the value. is null. Ensures that the target value is not null, empty, or whitespace. The target string, which should be checked against being null or empty. Name of the parameter. is null. is empty or contains only blanks. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. The type of the value. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. The type of the value. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value of greater than the maximum value. Verifies, that the method parameter with specified target value is true and throws an exception if it is found to be so. The target value, which cannot be false. The name of the parameter that is to be checked. The error message, if any to add to the exception. is false. Verifies, that the method parameter with specified target value is false and throws an exception if it is found to be so. The target value, which cannot be true. The name of the parameter that is to be checked. The error message, if any to add to the exception. is true. Verifies, that the `source` span has the length of 'minLength', or longer. The element type of the spans. The source span. The minimum length. The name of the parameter that is to be checked. has less than items. Verifies, that the `source` span has the length of 'minLength', or longer. The element type of the spans. The target span. The minimum length. The name of the parameter that is to be checked. has less than items. Verifies that the 'destination' span is not shorter than 'source'. The source element type. The destination element type. The source span. The destination span. The name of the argument for 'destination'. Verifies that the 'destination' span is not shorter than 'source'. The source element type. The destination element type. The source span. The destination span. The name of the argument for 'destination'. Provides methods to protect against invalid parameters. Provides methods to protect against invalid parameters. Ensures that the value is a value type. The target object, which cannot be null. The name of the parameter that is to be checked. The type of the value. is not a value type. Ensures that the value is not null. The target object, which cannot be null. The name of the parameter that is to be checked. The type of the value. is null. Ensures that the target value is not null, empty, or whitespace. The target string, which should be checked against being null or empty. Name of the parameter. is null. is empty or contains only blanks. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. The type of the value. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. The type of the value. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. The type of the value. is less than the minimum value of greater than the maximum value. Verifies, that the method parameter with specified target value is true and throws an exception if it is found to be so. The target value, which cannot be false. The name of the parameter that is to be checked. The error message, if any to add to the exception. is false. Verifies, that the method parameter with specified target value is false and throws an exception if it is found to be so. The target value, which cannot be true. The name of the parameter that is to be checked. The error message, if any to add to the exception. is true. Verifies, that the `source` span has the length of 'minLength', or longer. The element type of the spans. The source span. The minimum length. The name of the parameter that is to be checked. has less than items. Verifies, that the `source` span has the length of 'minLength', or longer. The element type of the spans. The target span. The minimum length. The name of the parameter that is to be checked. has less than items. Verifies that the 'destination' span is not shorter than 'source'. The source element type. The destination element type. The source span. The destination span. The name of the argument for 'destination'. Verifies that the 'destination' span is not shorter than 'source'. The source element type. The destination element type. The source span. The destination span. The name of the argument for 'destination'. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Ensures that the specified value is less than a maximum value. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The maximum value. The name of the parameter that is to be checked. is greater than the maximum value. Verifies that the specified value is greater than a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The name of the parameter that is to be checked. is less than the minimum value. Verifies that the specified value is greater than or equal to a minimum value and less than or equal to a maximum value and throws an exception if it is not. The target value, which should be validated. The minimum value. The maximum value. The name of the parameter that is to be checked. is less than the minimum value of greater than the maximum value. Helper methods to throw exceptions Throws an when fails. Throws an when fails. Throws an when fails. Throws an when fails. Throws an when fails. Throws an when fails. Throws an when fails. Throws an when fails. Throws a new . The message to include in the exception. The argument name. Thrown with and . Throws a new . The argument name. The message to include in the exception. Thrown with and . Throws a new . The argument name. The message to include in the exception. Thrown with and . Provides single-precision floating point constants and static methods for trigonometric, logarithmic, and other common mathematical functions. MathF emulation on platforms that don't support it natively. Represents the ratio of the circumference of a circle to its diameter, specified by the constant, π. Returns the absolute value of a single-precision floating-point number. A number that is greater than or equal to , but less than or equal to . A single-precision floating-point number, x, such that 0 ≤ x ≤. Returns the angle whose tangent is the quotient of two specified numbers. The y coordinate of a point. The x coordinate of a point. An angle, θ, measured in radians, such that -π≤θ≤π, and tan(θ) = y / x, where (x, y) is a point in the Cartesian plane. Observe the following: For (x, y) in quadrant 1, 0 < θ < π/2.For (x, y) in quadrant 2, π/2 < θ≤π.For (x, y) in quadrant 3, -π < θ < -π/2.For (x, y) in quadrant 4, -π/2 < θ < 0.For points on the boundaries of the quadrants, the return value is the following:If y is 0 and x is not negative, θ = 0.If y is 0 and x is negative, θ = π.If y is positive and x is 0, θ = π/2.If y is negative and x is 0, θ = -π/2.If y is 0 and x is 0, θ = 0. If x or y is , or if x and y are either or , the method returns . Returns the smallest integral value that is greater than or equal to the specified single-precision floating-point number. A single-precision floating-point number. The smallest integral value that is greater than or equal to . If is equal to , , or , that value is returned. Note that this method returns a instead of an integral type. Returns the cosine of the specified angle. An angle, measured in radians. The cosine of . If is equal to , , or , this method returns . Returns e raised to the specified power. A number specifying a power. The number e raised to the power . If equals or , that value is returned. If equals , 0 is returned. Returns the largest integer less than or equal to the specified single-precision floating-point number. A single-precision floating-point number. The largest integer less than or equal to . If is equal to , , or , that value is returned. Returns the larger of two single-precision floating-point numbers. The first of two single-precision floating-point numbers to compare. The second of two single-precision floating-point numbers to compare. Parameter or , whichever is larger. If , or , or both and are equal to , is returned. Returns the smaller of two single-precision floating-point numbers. The first of two single-precision floating-point numbers to compare. The second of two single-precision floating-point numbers to compare. Parameter or , whichever is smaller. If , , or both and are equal to , is returned. Returns a specified number raised to the specified power. A single-precision floating-point number to be raised to a power. A single-precision floating-point number that specifies a power. The number raised to the power . Rounds a single-precision floating-point value to the nearest integral value. A single-precision floating-point number to be rounded. The integer nearest . If the fractional component of is halfway between two integers, one of which is even and the other odd, then the even number is returned. Note that this method returns a instead of an integral type. Rounds a single-precision floating-point value to the nearest integer. A parameter specifies how to round the value if it is midway between two numbers. A single-precision floating-point number to be rounded. Specification for how to round if it is midway between two other numbers. The integer nearest . If is halfway between two integers, one of which is even and the other odd, then determines which of the two is returned. Note that this method returns a instead of an integral type. is not a valid value of . Returns the sine of the specified angle. An angle, measured in radians. The sine of . If is equal to , , or , this method returns . Returns the square root of a specified number. The number whose square root is to be found. One of the values in the following table. parameter Return value Zero or positive The positive square root of . Negative Equals Equals .