Exemplo n.º 1
0
        private static unsafe byte[] ToRGBFrom32Bpp(BitmapData imageData)
        {
            int width      = imageData.Width;
            int height     = imageData.Height;
            int destStride = width * sizeof(RGB);

            var dist = new byte[imageData.Width * imageData.Height * 3];

            ARGB *srcImgPtr = (ARGB *)imageData.Scan0;

            fixed(byte *destImgDataPinnedPtr = dist)
            {
                byte *destImageDataPtr = destImgDataPinnedPtr;

                Parallel.For(0, imageData.Height, y =>
                {
                    RGB *yDestRgbPtr = (RGB *)(destImageDataPtr + (destStride * y));
                    ARGB *ySrcRgbPtr = srcImgPtr + (width * y);

                    for (int x = 0; x < width; ++x)
                    {
                        ySrcRgbPtr++->ReverseTo(yDestRgbPtr++);
                    }
                });
            }

            return(dist);
        }
Exemplo n.º 2
0
 public static extern unsafe GpStatus GdipGetPenColor(
     GpPen pen,
     ARGB *argb);
Exemplo n.º 3
0
 public static unsafe extern float RenderImage3(void *scene, RenderConfiguration config, ARGB *buffer, ref float progress);