2014-12-23 4 views
2

Я без проблем могу снимать снимки всего кадра UIView. Принимая во внимание, это приводит к сжатию изображения.Сделайте снимок - только часть UIView, а не весь кадр

Это мой метод UIView Категория:

- (UIImage *)snapshot:(CGRect)frame 
{ 
    UIGraphicsBeginImageContextWithOptions(frame.size, YES, [[UIScreen mainScreen] scale]); 
    [self drawViewHierarchyInRect:frame afterScreenUpdates:YES]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

return image; 
} 

И это вызов этого метода:

UIImage *img = [self.view snapshot:bottomRectToSnap]; 

Когда bottomRectToSnap частичный кадр зрения.

Примечание: UIView содержит UITableView, если это важно.

ответ

0

Код, который вы подаете, в порядке.

Нужно добавить какую-либо логику, какую бы деталь вам ни понадобилась, чтобы она была оснащена, она должна быть доступна на экране и скрывать остальную часть при щелчке.

Как только сделанный снимок сделан, удалите скрытый код. Таким образом, это не повлияет на просмотр интерфейса.

0

Используйте следующий код.

- (void)captureView:(UIView*)view withFrame:(CGRect)frame{ 

    UIGraphicsBeginImageContext(self.view.bounds.size); 

    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    CGRect rect = frame; 
    CGImageRef imageRef = CGImageCreateWithImageInRect([viewImage CGImage], rect); 

    UIImage *img = [UIImage imageWithCGImage:imageRef]; 

    UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil); 

    CGImageRelease(imageRef); 
    } 
0

Вы можете добавить этот код, чтобы взять снимок определенной части ..

CGRect cropRect=CGRectMake(0, 0, 100, 100); 

    CGImageRef imageRef = CGImageCreateWithImageInRect([_galleryimageview.image CGImage], cropRect); 

    UIImage *cropedImage=[UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 

Этот код урожая часть определенного образа ... Надеюсь, что это полезно для вас ..

Смежные вопросы