ImageMagick.QuantumConverter.ToArray C# (CSharp) Method

ToArray() public static method

public static ToArray ( IntPtr nativeData, int length ) : QuantumType[]
nativeData System.IntPtr
length int
return QuantumType[]
    public static QuantumType[] ToArray(IntPtr nativeData, int length)
    {
      if (nativeData == IntPtr.Zero)
        return null;

      QuantumType[] result = new QuantumType[length];

      unsafe
      {
#if Q8
        byte* sourcePtr = (byte*)nativeData;
#elif Q16
        ushort* sourcePtr = (ushort*)nativeData;
#elif Q16HDRI
        float* sourcePtr = (float*)nativeData;
#else
#error Not implemented!
#endif
        for (int i = 0; i < length; ++i)
        {
          result[i] = *sourcePtr++;
        }
      }

      return result;
    }
  }

Usage Example

Example #1
0
        private QuantumType[] GetAreaUnchecked(int x, int y, int width, int height)
        {
            IntPtr pixels = _NativeInstance.GetArea(x, y, width, height);

            if (pixels == IntPtr.Zero)
            {
                throw new InvalidOperationException("Image contains no pixel data.");
            }

            int length = width * height * _Image.ChannelCount;

            return(QuantumConverter.ToArray(pixels, length));
        }
QuantumConverter