Снимок экрана, начиная с 0,0 - PullRequest
1 голос
/ 04 апреля 2011

Я использую следующий код для создания снимка экрана

UIGraphicsBeginImageContext(self.view.frame.size);

blendMode:kCGBlendModeClear alpha:1.0];

[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

return viewImage;

Он работает нормально, но возвращает полный экран, и я хочу снимок экрана определенного кадра, например ( 100,100,200,200)попытался внести изменения в:

UIGraphicsBeginImageContext(self.view.frame.size);

Но безуспешно.

Ответы [ 2 ]

9 голосов
/ 04 апреля 2011

Попробуйте это:

float x = 100;
float y = 100;
CGSize size = CGSizeMake(200,200);

UIGraphicsBeginImageContext(size);
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(c, -x, -y);
[view.layer renderInContext:c];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
0 голосов
/ 04 апреля 2011

просто используйте три строки кода.

    UIGraphicsBeginImageContext(CGSizeMake(320, 480));
    [self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *frame= UIGraphicsGetImageFromCurrentImageContext();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...