Проблема с @ 2X - PullRequest
       17

Проблема с @ 2X

1 голос
/ 20 ноября 2010

1.Я использую приведенный ниже код для снимка экрана. Необходимо изменить его на высокое разрешение

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

2. Что произойдет, если я просто использую одно изображение с разрешением 640 * 960 для низкого и высокого качества? (означает, что не используйте изображение с @ 2x)

1 Ответ

3 голосов
/ 20 ноября 2010

Это займет только скриншоты с нормальным (320x480) разрешением. Так что в ответ на 1, да. Устройства старых поколений также могут иметь двойное разрешение, экран просто не может их отображать.

Чтобы сделать снимок экрана с разрешением устройства, вы можете сделать это:

CGSize size = self.view.bounds.size;
CGFloat scale = 1.0f;
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    scale = [[UIScreen mainScreen] scale];
    size = CGSizeApplyAffineTransform(size, CGAffineTransformMakeScale(scale, scale));
}

UIGraphicsBeginImageContext(size);

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, scale, scale);

[self.view.layer renderInContext:context]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Двойное разрешение на старых устройствах работает, и будет уменьшено, если отображается на экране. Но не рекомендуется, а просто трата.

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