繁体   English   中英

UIView使用UIGraphicsImageRenderer错误地使用alpha渲染图像

UIView to UIImage using UIGraphicsImageRenderer wrongly renderer image with alpha

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在将UIView转换为UIImage,将其设置为navigationBar背景。

那个视图有一个渐变层,当我使用转换后的视图使用setBackgroundImage(_ backgroundImage: UIImage?, for barMetrics: UIBarMetrics) ,导航变得有点透明,类似于0.8 alpha

这是我正在使用的代码:

let navBackground = UIView(frame: CGRect(x: UIApplication.shared.statusBarFrame.origin.x, 
                                             y: UIApplication.shared.statusBarFrame.origin.y, 
                                             width: UIApplication.shared.statusBarFrame.width, 
                                             height: UIApplication.shared.statusBarFrame.height+self.navigationController!.navigationBar.frame.size.height))
let gradient: CAGradientLayer = CAGradientLayer()
gradient.colors = [UIColor(red:0.16, green:0.22, blue:0.49, alpha:1.0).cgColor, UIColor(red:0.31, green:0.53, blue:0.78, alpha:1.0).cgColor]
gradient.locations = [0.0, 1.0]
gradient.startPoint = CGPoint(x: 0, y: 1)
gradient.endPoint = CGPoint(x: 1, y: 0)
gradient.frame = navBackground.bounds
navBackground.layer.insertSublayer(gradient, above: nil)
let imgBackground = navBackground.asImage()
            self.navigationController?.navigationBar.setBackgroundImage(imgBackground, for: UIBarMetrics.default)

asImage()它是一个将UIView转换为UIImage的UIView扩展:

extension UIView {

func asImage() -> UIImage {

    let renderer = UIGraphicsImageRenderer(bounds: bounds)
    return renderer.image { rendererContext in
        layer.render(in: rendererContext.cgContext)
    }

}!

结果: 样本

1 个回复

关闭导航栏的translucent属性。 实际上,默认导航背景具有模糊效果,但转换后的图像没有。

1 在 UIGraphicsImageRenderer 中添加 UIImage

我是 Swift 的初学者,我想使用UIGraphicsImageRenderer将图像添加到自定义路径绘制中。 我给你看我的代码: 我的自定义路径运行良好,但是当我添加userPicture ,图像不占用路径的边界... 这就是我所拥有的: 这就是我想要的: (用猫图代替白色背景): ...

2 UIGraphicsImageRenderer 不在循环中返回图像

我想看看为什么 UIGraphicsImageRender 没有返回图像。 我们将循环 calayers 列表以将 calayer 转换为 uiimage,然后将 uiimage 存储在列表中。 它发生在索引 91 处。我正在使用这个从 calayers 到图像的过程,然后将图像转换为视频文件。 我 ...

4 UIGraphicsImageRenderer 生成 PPI 不正确的图像

我正在尝试使用 UIGraphicsImageRenderer 在上传到我的 Web 服务器之前修复图像的方向,并且以下代码有效,但它生成的图像的 PPI 高于我想要的: 生成的图像具有正确的分辨率,但 PPI 为 216,而不是预期的 72。我观察到原始图像的比例为 1.0,但 context ...

5 使用 UIGraphicsImageRenderer 图像检索像素数据无法正常工作

我有以下代码可以从UIImage获取像素数据,这适用于大多数图像,但是当我使用UIGraphicsImageRenderer创建图像时不起作用。 我希望有人知道解决方案。 我当前的代码生成了一个简单的图像,但随后访问数据会产生意想不到的结果。 我使用以下代码生成图像以查看它是否正常工作。 ...

6 后台线程中缩放图像崩溃-UIGraphicsImageRenderer

我正在使用这种方法缩放(并在此之前生成)图像。 这是在后台线程中完成的,然后将结果分派回主线程。 但是,在image.draw上-有时十分之一,应用程序会因EXC_BAD_ACCESS崩溃。 我究竟做错了什么? 我可以在后台执行此操作吗? 谢谢 ...

7 以编程方式更改UIImage的Alpha

我仍在探索xCode / Objective-C,而且我想知道如何更改UIImage的alpha。 我尝试编写自己的代码,但在类型UIImage的对象上收到错误“属性'alpha'”。 如果我注释掉Alpha更改线,则初始屏幕将起作用。 我的代码如下。 //谢谢! ...

8 CIFilter + UIImage + alpha蒙版

我正在使用这样的解决方案用一些alpha绘图掩盖我的UIImage : 掩盖UIImage 问题是后来我想申请一些CIFilters 。 但是,当我更改过滤器的值时,我的alpha会从UIImage丢失。 每次修改CIFilter后,是否必须重新应用alpha通道输出图像? 这肯定会 ...

9 如何获取UIImage的Alpha

我有一个UIImage。 我需要找出它的alpha值。 有人可以向我详细解释一下吗,提供指向任何参考的链接以及如何进行此操作的源代码。 请不要提供找出UIImageView的Alpha的答案,因为我不需要它。 提前致谢 ...

10 使用UIGraphicsImageRenderer时如何设置比例

默认情况下, UIGraphicsImageRenderer将缩放设置为设备的屏幕比例,在iPhone 6s上它是2x和iPhone 6s Plus 3x,因此即使你给它一个尺寸为300的尺寸,它也会创建600或900,具体取决于正在使用的设备用过的。 当你想确保它总是300时,你如何设置比例 ...

2016-06-27 04:31:27 1 1658   ios/ uikit
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM