将标准C#转换为符合MonoTouch标准的代码

Jac*_*ins 3 c# bitmap xamarin.ios

我需要将以下方法从C#转换为符合MonoTouch的代码:

private WritableBitMap CreateBitMapWPF(RGBPaletteRecord rgbPalette, double dpi)
        {
            WritableBitMap bitmapImage = null;

            try
            {
                bitmapImage = new WritableBitMap(TileRecord.PixelWidth, TileRecord.PixelHight, dpi, dpi, PixelFormats.Rgb24, BitmapPalettes.Halftone256);
              //  int nStride = (bitmapImage.PixelWidth * bitmapImage.Format.BitsPerPixel + 7) / 8;
                int nStride = (bitmapImage.PixelWidth * bitmapImage.Format.BitsPerPixel  / 8);
                System.Windows.Int32Rect rect = new System.Windows.Int32Rect(0, 0, TileRecord.PixelWidth, TileRecord.PixelHight);

                byte[] data = GetBytes(rgbPalette);

                bitmapImage.WritePixels(rect, data, nStride, 0);
            }
            catch (Exception ex)
            {

            }

            //// temp write to file to test         
            //using (FileStream stream5 = new FileStream(@"C:\test.bmp", FileMode.Create))
            //{

            //    BitmapEncoder encoder5 = new BmpBitmapEncoder();
            //    encoder5.Frames.Add(BitmapFrame.Create(bitmapImage));
            //    encoder5.Save(stream5);
            //    stream5.Close();
            //}

            //
            return bitmapImage;

        }
Run Code Online (Sandbox Code Playgroud)

我不是要求某人进行实际转换,但我想知道转换此代码时最好的方法是什么?我应该专注于转换使用MonoTouch库吗?标准系统库?任何建议将不胜感激.

非常感谢,

Tysin

编辑; 基本上这个转换的目的是我有这些C#类执行一组函数来处理位图图像,我正在使用MonoTouch,因为我需要在iPhone应用程序中使用这些文件.

pou*_*pou 5

转换此代码时,最好的方法是什么?

这取决于您的目标和应用.如果您计划跨产品/版本共享代码,那么您最好拥有一个API来抽象平台详细信息并为每个平台分离代码.

我应该专注于转换使用MonoTouch库吗?

iOS(或MonoTouch)不支持WPF API.所以你最近的赌注是看iOS的API,它的MonoTouch提供(即看看着第三方库之前什么是已发售).

您可以通过使用iOS CoreGraphics(通常与旧System.Drawing型号非常相似)找到类似的功能.对于位图图像,您应该阅读该CGImage类型的文档.