public static unsafe void TransformPixelsTo_sRGB(SafeProfileHandle source, mscmsPxFormat pxFormat, void *data, int width, int height, uint stride, mscmsIntent dwIntent) { using (var dest = OpenProfile_sRGB()) using (var transform = CreateTransform(source, dest, dwIntent)) { var success = TranslateBitmapBits(transform, data, pxFormat, (uint)width, (uint)height, stride, data, pxFormat, stride, IntPtr.Zero, IntPtr.Zero); if (!success) { throw new Win32Exception(); } } }
private static extern unsafe bool TranslateBitmapBits(SafeTransformHandle hTransform, void *pSrcBits, mscmsPxFormat bmFormat, uint dwWidth, uint dwHeight, uint dwInputStride, void *pDestBits, mscmsPxFormat bmOutput, uint dwOutputStride, IntPtr pfnCallBack, IntPtr lParam);