如何在iOS中把输出(UIView)导出为指定大小的图片。

问题描述 投票:0回答:1

我将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);

保存的图片质量不过关。如何实现?

ios xamarin.ios uiimageview uiimage
1个回答
0
投票

方法的第三个参数 BeginImageContextWithOptions 是屏幕的比例。所以在一些高屏幕密度(PPi)的情况下,当你把它设为 1 .

实际上,你需要将它设置为当前设备的比例,如

UIGraphics.BeginImageContextWithOptions(ZoomLayout.Frame.Size, false, UIScreen.MainScreen.Scale);
© www.soinside.com 2019 - 2024. All rights reserved.