如何在xamarinios中将imagescourse转换为NSUrl或CGImage



我想将ImageSource或图像字节数组转换为Xamarin。ios NSUrl或CGImage。如何实现这一点。我正在从LayoutView生成字节数组,如下所示。在获得字节数组之后,我需要将它转换为NSUrl或CGImage来打印布局。从下面的代码中,我将得到bytearray。

public byte[] LayoutToImage()
{
var view = UIApplication.SharedApplication.KeyWindow;
UIGraphics.BeginImageContext(view.Frame.Size);
view.DrawViewHierarchy(view.Frame, true);
var image = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
using (var imageData = image.AsPNG())
{
var bytes = new byte[imageData.Length];
System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, bytes, 0, Convert.ToInt32(imageData.Length));
return bytes;
}
}

我能够在iOS项目资源文件中打印图像,这样我也需要打印布局视图。

string fileName = "SampleImg.png";
string localDocUrl = Path.Combine(NSBundle.MainBundle.BundlePath, fileName);var Error = Driver.PrintImageWithURL(new NSUrl(localDocUrl), pSettings);

正如Jason所说,GetImageFromCurrentImageContext返回一个UIImage。如果你想转换为CGImage,你可以直接使用UIImage.CGImage获取CGImage。将字节数组转换为CGImage也需要首先转换为UIImage。

最新更新