#iphone #ipad #core-graphics #quartz-graphics #quartz-2d
#iPhone #iPad #ядро-графика #quartz-графика #quartz-2d
Вопрос:
Я хочу сделать предварительный просмотр миниатюр того, что пользователь будет смотреть при нажатии кнопки. Или, если это невозможно, возможно ли масштабировать контекст до определенного размера. В настоящее время мой контекст использует полноэкранный режим, т. Е. 1004×768 пикселей. И я хочу, чтобы весь этот контекст был размером 300×300 пикселей без потери его идентичности.
Комментарии:
1. Вы используете контекстное растровое изображение context?
2. Нет, мой контекст — CGContextRef context = UIGraphicsGetCurrentContext();
3. Вам нужно добавить дополнительную информацию о том, как может существовать контекст, который что делает .. и какой контекст вы хотите обновить. Если вы делаете это только с одним контекстом, вам, возможно, придется пересмотреть свой дизайн.
Ответ №1:
Попробуйте это
UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.height, self.view.frame.size.width));
[self.view.layer renderInContext:UIGraphicsGetCurrentContext() ];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
NSLog(@"Screen Shot : %@",screenshot);
UIGraphicsEndImageContext();
// ATTACHING A SCREENSHOT
NSData *myData = UIImagePNGRepresentation(screenshot);
NSDate *date = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"mm:ss"];
NSString *timestamp = [df stringFromDate:date];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fullImagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"Image_%@.png",timestamp]];
NSLog(@"TimeStamp = %@",timestamp);
NSLog(@"Image Path : %@",fullImagePath);
[myData writeToFile:fullImagePath atomically:YES];