public void Fill16Swap(int i, int j, byte [] src_data, int offset, int count) { unsafe { ushort *rowpix; fixed(ushort *pixels = &data[0]) { fixed(byte *bytes = &src_data[offset]) { ushort *src_pixels = (ushort *)bytes; rowpix = pixels + i * rowstride + j; for (int col = 0; col < count; col++) { rowpix [col] = BitConverter.Swap(src_pixels [col]); } } } } }