private static void putcontig8bitYCbCr21tile(
TiffRgbaImage img, int[] raster, int rasterOffset, int rasterShift,
int x, int y, int width, int height, byte[] buffer, int offset, int bufferShift)
{
bufferShift = (bufferShift * 4) / 2;
do
{
x = width >> 1;
do
{
int Cb = buffer[offset + 2];
int Cr = buffer[offset + 3];
img.YCbCrtoRGB(out raster[rasterOffset + 0], buffer[offset + 0], Cb, Cr);
img.YCbCrtoRGB(out raster[rasterOffset + 1], buffer[offset + 1], Cb, Cr);
rasterOffset += 2;
offset += 4;
}
while (--x != 0);
if ((width & 1) != 0)
{
int Cb = buffer[offset + 2];
int Cr = buffer[offset + 3];
img.YCbCrtoRGB(out raster[rasterOffset + 0], buffer[offset + 0], Cb, Cr);
rasterOffset += 1;
offset += 4;
}
rasterOffset += rasterShift;
offset += bufferShift;
}
while (--height != 0);
}