我有一个像素字节数组和一个颜色调色板,代表256色调色板索引的Windows位图。我需要从中创建OSX NSImage。
在Windows中它只是:
public Bitmap CreateFromData(byte[] buffer, int width, int height, byte[] palette3x256)
{
//allocate new bitmap
Bitmap img = new Bitmap(width, height, PixelFormat.Format8bppIndexed);
//fill image palette with color information
ColorPalette pal = img.Palette;
for (int i = 0; i < palette3x256.Length; i += 3)
pal.Entries[i / 3] = Color.FromArgb(palette3x256[i + 2], palette3x256[i + 1], palette3x256[i]);
img.Palette = pal;
// copy pixels to bitmap
BitmapData data = img.LockBits(new Rectangle(0, 0, img.Width, img.Height), ImageLockMode.WriteOnly, img.PixelFormat);
Marshal.Copy(buffer, 0, data.Scan0, buffer.Length);
img.UnlockBits(data);
return img;
}
我如何在OSX-Xamarin中执行此操作?我需要创建一个NSImage或NSBitmapImageRep?不幸的是,我对这些原生的OSX事物并不是很熟悉。