BitMiracle.LibTiff.Classic.TiffRgbaImage.putRGBseparate8bittile C# (CSharp) Method

putRGBseparate8bittile() private static method

8-bit unpacked samples => RGB
private static putRGBseparate8bittile ( TiffRgbaImage img, int raster, int rasterOffset, int rasterShift, int x, int y, int width, int height, byte buffer, int offset1, int offset2, int offset3, int offset4, int bufferShift ) : void
img TiffRgbaImage
raster int
rasterOffset int
rasterShift int
x int
y int
width int
height int
buffer byte
offset1 int
offset2 int
offset3 int
offset4 int
bufferShift int
return void
        private static void putRGBseparate8bittile(
            TiffRgbaImage img, int[] raster, int rasterOffset, int rasterShift,
            int x, int y, int width, int height,
            byte[] buffer, int offset1, int offset2, int offset3, int offset4, int bufferShift)
        {
            while (height-- > 0)
            {
                int _x;
                for (_x = width; _x >= 8; _x -= 8)
                {
                    for (int rc = 0; rc < 8; rc++)
                    {
                        raster[rasterOffset] = PACK(buffer[offset1], buffer[offset2], buffer[offset3]);
                        rasterOffset++;
                        offset1++;
                        offset2++;
                        offset3++;
                    }
                }

                if (_x > 0)
                {
                    if (_x <= 7 && _x > 0)
                    {
                        for (int i = _x; i > 0; i--)
                        {
                            raster[rasterOffset] = PACK(buffer[offset1], buffer[offset2], buffer[offset3]);
                            rasterOffset++;
                            offset1++;
                            offset2++;
                            offset3++;
                        }
                    }
                }

                offset1 += bufferShift;
                offset2 += bufferShift;
                offset3 += bufferShift;
                rasterOffset += rasterShift;
            }
        }