private static void putRGBUAcontig16bittile(
TiffRgbaImage img, int[] raster, int rasterOffset, int rasterShift,
int x, int y, int width, int height, byte[] buffer, int offset, int bufferShift)
{
int samplesperpixel = img.samplesperpixel;
bufferShift *= samplesperpixel;
short[] wp = Tiff.ByteArrayToShorts(buffer, offset, buffer.Length);
int wpPos = 0;
while (height-- > 0)
{
for (x = width; x-- > 0; )
{
int a = W2B(wp[wpPos + 3]);
int r = (W2B(wp[wpPos]) * a + 127) / 255;
int g = (W2B(wp[wpPos + 1]) * a + 127) / 255;
int b = (W2B(wp[wpPos + 2]) * a + 127) / 255;
raster[rasterOffset] = PACK4(r, g, b, a);
rasterOffset++;
wpPos += samplesperpixel;
}
rasterOffset += rasterShift;
wpPos += bufferShift;
}
}