снимок экрана, сделанный на дисплее Ratina, выглядит размытым при масштабе 1,0 и слишком большим при масштабе 0,0

Я использую следующий код, чтобы сделать снимок экрана одного из моих контроллеров представления, а затем показать его позже в другом представлении. Для метода UIGraphicsBeginImageContextWithOptions, если передать ему масштаб 1,0, результирующее изображение будет выглядеть размытым; но если указать масштаб 0,0, результирующее изображение будет больше, чем экран, и его можно будет увидеть частично при отображении в другом представлении. Есть ли способ исправить это?

CGSize imageSize = [[UIScreen mainScreen] bounds].size;
if (NULL != UIGraphicsBeginImageContextWithOptions) {
    UIGraphicsBeginImageContextWithOptions(imageSize, NO, 1.0);
} else {
    UIGraphicsBeginImageContext(imageSize);
}

[_displayViewController.view.layer renderInContext:UIGraphicsGetCurrentContext()];

// Retrieve the screenshot image
UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

person tom    schedule 09.05.2012    source источник


Ответы (1)


На самом деле, если я использую

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);

Изображение выглядит четким, однако этот снимок экрана будет охватывать только то, что показано на экране, а не то, что скрыто за его пределами.

Если я изменю размер на размер UIView, у меня также возникнет вышеуказанная проблема.

person dionkta    schedule 08.06.2012