我将UIView保存为图像。当它以与视图相同的大小保存时,保存的图像质量很好。但我希望图像的大小与我指定的大小相同,但质量要好。
UIGraphics.BeginImageContextWithOptions(ZoomLayout.Frame.Size, false, 1);
this.ZoomLayout.Layer.RenderInContext(UIGraphics.GetCurrentContext());
var imageFromContext = UIGraphics.GetImageFromCurrentImageContext();
UIImage saveImage = imageFromContext;
ZoomLayout是我需要将UIView和它的子视图一起保存为图像。上面的代码工作得很好,但我希望保存的图片大小是我指定的,但质量好。但我希望保存的图片大小是说(300x500)。如果我指定如下
UIGraphics.BeginImageContextWithOptions(new CGSize(300,500) , false, 1);
保存的图片质量不过关。如何实现?
方法的第三个参数 BeginImageContextWithOptions
是屏幕的比例。所以在一些高屏幕密度(PPi)的情况下,当你把它设为 1
.
实际上,你需要将它设置为当前设备的比例,如
UIGraphics.BeginImageContextWithOptions(ZoomLayout.Frame.Size, false, UIScreen.MainScreen.Scale);