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应用程序中使用这些文件.
转换此代码时,最好的方法是什么?
这取决于您的目标和应用.如果您计划跨产品/版本共享代码,那么您最好拥有一个API来抽象平台详细信息并为每个平台分离代码.
我应该专注于转换使用MonoTouch库吗?
iOS(或MonoTouch)不支持WPF API.所以你最近的赌注是看iOS的API,它的MonoTouch提供(即看看着第三方库之前什么是已发售).
您可以通过使用iOS CoreGraphics(通常与旧System.Drawing型号非常相似)找到类似的功能.对于位图图像,您应该阅读该CGImage类型的文档.