【问题标题】:IOS How to take screenshot of only image in uiimageviewIOS如何在uiimageview中只截取图像
【发布时间】:2015-11-16 09:46:42
【问题描述】:

我想只截取 imageview 中的图片。我尝试了以下代码,但它会截取 imageview 的屏幕截图。

CGRect grabRect = CGRectMake(self.vwBackup.frame.origin.x,self.vwBackup.frame.origin.y,self.vwBackup.frame.size.width,self.vwBackup.frame.size.height);

    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions(grabRect.size, NO, [UIScreen mainScreen].scale);
    } else {
        UIGraphicsBeginImageContext(grabRect.size);
    }
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(ctx, -grabRect.origin.x, -grabRect.origin.y);
    [self.view.layer renderInContext:ctx];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
   // UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
    self.ImgEditableView.image=viewImage;

这里我附上了上面代码的截图:

【问题讨论】:

    标签: ios objective-c uiimageview


    【解决方案1】:
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
        UIGraphicsBeginImageContextWithOptions(self.displayImageView.bounds.size, NO, [UIScreen mainScreen].scale);
    else
        UIGraphicsBeginImageContext(self.displayImageView.bounds.size);
    
    [self.displayImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSData * imgData = UIImagePNGRepresentation(image);
    if(imgData)
    {
        [imgData writeToFile:@"screenshot.png" atomically:YES];
    }
    else
    
        NSLog(@"error while taking screenshot");
    

    【讨论】:

    • 我已经尝试过更新代码,但现在,它将截取完整的屏幕截图,这意味着它还包括 imageview。我只需要 imageview 中图像大小的屏幕截图。
    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2013-05-13
    相关资源
    最近更新 更多