跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请问一下有人遇到过 CAGradientLayer 无法截图的问题
未分類
24 11 月 2020

请问一下有人遇到过 CAGradientLayer 无法截图的问题

请问一下有人遇到过 CAGradientLayer 无法截图的问题

資深大佬 : pptk 3

有什么解决方法吗

大佬有話說 (1)

  • 主 資深大佬 : pptk

    已解决
    //绘制渐变
    UIColor *firstColor = [[UIColor alloc]initWithCGColor:(CGColorRef)self.bgLayer.colors.firstObject];
    UIColor *lastColor = [[UIColor alloc]initWithCGColor:(CGColorRef)self.bgLayer.colors.lastObject];
    //创建一个 RGB 的颜色空间
    CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
    //定义渐变颜色数组
    CGFloat colors[] = {
    firstColor.qmui_red, firstColor.qmui_green, firstColor.qmui_blue, 1.00,
    lastColor.qmui_red, lastColor.qmui_green, lastColor.qmui_blue, 1.00
    };
    CGGradientRef _gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*4));
    UIGraphicsBeginImageContextWithOptions(self.preImage.size, NO, self.preImage.scale);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextInspectContext(context);
    CGPoint start = CGPointMake(self.preImage.size.width/2, 0);
    CGPoint end = CGPointMake(self.preImage.size.width/2, self.preImage.size.height);
    CGContextDrawLinearGradient(context, _gradient, start, end, kCGGradientDrawsBeforeStartLocation);

    CGImageRef imageRef = self.preImage.CGImage;
    CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef,CGRectMakeWithSize(self.preImage.size));
    CGContextDrawImage(context, CGRectMakeWithSize(self.preImage.size), subImageRef);

    UIImage *imageOut = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具