Когда я делаю снимок экрана для полноразмерного просмотра на устройствах с высоким разрешением iOS, данные изображения результата очень велики.Например, разрешение iPhoneX составляет 812 * 375, а масштаб экрана - 3. Таким образом, изображение ARGB для полного снимка экрана займет около 812 * 3 * 375 * 3 * 4 байта, или 10,4 МБ.Поэтому, когда я использую эти снимки экрана в своем приложении, использование памяти перейдет на высокий уровень и, возможно, вызовет предупреждение памяти.
Вот мой код:
if (CGRectIsEmpty(self.bounds)) {
return nil;
}
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen] scale]);
[self drawViewHierarchyInRect:self.bounds
afterScreenUpdates:NO];
UIImage *renderImg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Даже еслиЯ сжимаю снимок экрана, в памяти все еще есть импульсы.
Итак, мой вопрос: есть ли хороший способ взять высокийразрешение скриншота и избежать давления памяти?