objective-c - 如何拍摄圆形屏幕截图?

标签 objective-c ios screenshot

我看过很多关于截图的问题和答案,我知道该怎么做,这不是我的问题,这是我的代码:

- (void)takeScreenShot
{
    //UIGraphicsBeginImageContextWithOptions(CGSizeMake(320, 340), YES, 0.);
    UIGraphicsBeginImageContext(CGSizeMake(320, 480));
    [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

如何拍摄圆形屏幕截图而不是仅 320x480 的方框?

最佳答案

你可以试试这个:

- (UIImage *)takeRoundedScreenShot:(CGPoint)center
{
  float cornerRadius = self.view.window.layer.cornerRadius;
  CGAffineTransform savedTransform = self.view.window.transform;

  UIGraphicsBeginImageContext(CGSizeMake(320, 320));
  self.view.window.layer.cornerRadius = 160;
  self.view.window.clipsToBounds = YES;
  self.view.window.transform = CGAffineTransformMakeTranslation(-(center.x-160), -(center.y-160));
  [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();

  self.view.window.transform = savedTransform;
  self.view.window.layer.cornerRadius = cornerRadius.

  return viewImage;
}

关于objective-c - 如何拍摄圆形屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13007512/

相关文章:

javascript - 如何使PhantomJS截图尺寸与实际网页对应?

iphone - 如何从通讯录 IOS 5 KA PersonPhone 属性中获取所有电话号码

objective-c - iOS ivar alloc/init 分配内存地址给另一个ivar

iphone - 我可以从另一个 View 传递/访问原始数据类型(float、double、int)吗?

ios - ReplayKit 在与 webrtc 一起工作时不起作用

iphone - 将自定义角标(Badge)添加到导航栏中的分段控件

IOS/objective-C : NSLinguisticTagger for Recognizing Named Entities

ios - 如何使用 UITableView 自定义 UIAlertController 或者是否有像 Pages 应用程序中的这个 UI 这样的默认控件可用?

iphone - 如何在应用启动前获取主屏幕截图

python - 无法对拆卸中的异常使用react