Как я могу сделать снимок всего контекста, который я нарисовал в quartz 2d

#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];