UIGraphicsGetImageFromCurrentImageContext разрешает сетчатку? - PullRequest
6 голосов
/ 14 февраля 2012
UIImageView *cellimage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0 , 107, 70)];

Вышеуказанное утверждение, я уверен, сделает соответствующие размеры как для устройств с разрешением сетчатки, так и для стандартных. Это кадр размером 107 x 70 пикселей на стандартном и 214 x 140 на сетчатке.

Что я хочу знать, так это если ниже UIGraphicsGetImageFromCurrentImageContext тоже самое .. изображение будет 67 x 67 для стандартного и 124 x 124 для версий сетчатки?

    CGSize imagesize = CGSizeMake(67, 67);
        UIGraphicsBeginImageContext(imagesize);
        NSLog(@" Converting ");
        [image drawInRect:CGRectMake(0,0,imagesize.width,imagesize.height)];
        newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();  

если нет, может кто-нибудь сказать мне, как различать модели.? Спасибо

1 Ответ

26 голосов
/ 14 февраля 2012

Вам нужно использовать UIGraphicsBeginImageContextWithOptions вместо UIGraphicsBeginImageContext, чтобы вы могли указать масштабный коэффициент изображения. При этом будет использован масштабный коэффициент основного экрана устройства:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);

Используется масштабный коэффициент экрана, содержащего cellImage, если на экране cellImage:

UIGraphicsBeginImageContextWithOptions(imageSize, NO, cellImage.window.screen.scale);

Это жестко закодирует масштабный коэффициент:

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