UIImage конвертировать в данные и обратно изменять размер? - PullRequest
0 голосов
/ 08 декабря 2018

Я создаю картинку программно, преобразую ее в данные и обратно и получаю разные картинки.

    let image1: UIImage = {
        let size = CGSize(width: 50, height: 50)
        let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        UIColor.black.setFill()
        UIRectFill(rect)
        let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }()
    let data = UIImagePNGRepresentation(image1)!
    let image2 = UIImage(data: data)!
    print(image1.size) // (50.0, 50.0)
    print(image2.size) // (100.0, 100.0)

Пожалуйста, объясните, что происходит и как решить проблему.Спасибо!

1 Ответ

0 голосов
/ 08 декабря 2018

Строка "виновника":

UIGraphicsBeginImageContextWithOptions(size, false, 0)

Просмотр документа UIGraphicsBeginImageContextWithOptions(), для последнего параметра (scale)

масштаб
Коэффициент масштабирования, применяемый к растровому изображению. Если указать значение 0,0, коэффициент масштабирования будет установлен на коэффициент масштабирования главного экрана устройства.

Если ваше устройство Retina (* 2), токоэффициент масштабирования будет 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...