Как экспортировать вывод (UIView) в изображение указанного размера в iOS - PullRequest
1 голос
/ 18 июня 2020

Я сохраняю 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);

Сохраненное изображение не по качеству. Как этого добиться?

1 Ответ

0 голосов
/ 18 июня 2020

Третий аргумент метода BeginImageContextWithOptions - масштаб экрана. Таким образом, он будет терять качество при высокой плотности экрана (PPi), когда вы установите его как 1.

На самом деле вам нужно установить его как масштаб текущего устройства, например

UIGraphics.BeginImageContextWithOptions(ZoomLayout.Frame.Size, false, UIScreen.MainScreen.Scale);
...