栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Swift PNG图片保存方向错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Swift PNG图片保存方向错误

如果需要以正确的旋转方式保存PNG,则如果方向不正确,则需要重新绘制图像

.up
。您可以按以下方式重绘它:

extension UIImage {    func png(isOpaque: Bool = true) -> Data? { flattened(isOpaque: isOpaque)?.pngData() }    func flattened(isOpaque: Bool = true) -> UIImage? {        if imageOrientation == .up { return self }        UIGraphicsBeginImageContextWithOptions(size, isOpaque, scale)        defer { UIGraphicsEndImageContext() }        draw(in: CGRect(origin: .zero, size: size))        return UIGraphicsGetImageFromCurrentImageContext()    }}

编辑/更新:

对于iOS10 + tvOS10 +,您可以使用

UIGraphicsImageRenderer

extension UIImage {    func png(isOpaque: Bool = true) -> Data? { flattened(isOpaque: isOpaque).pngData() }    func flattened(isOpaque: Bool = true) -> UIImage {        if imageOrientation == .up { return self }        let format = imageRendererFormat        format.opaque = isOpaque        return UIGraphicsImageRenderer(size: size, format: format).image { _ in draw(at: .zero) }    }}

游乐场测试:

不透明图像的用法:

let image = UIImage(data: try! Data(contentsOf: URL(string: "https://i.stack.imgur.com/varL9.jpg")!))!if let data = image.png() {    let imageFromPNGData = UIImage(data: data)}

具有透明度:

if let data = image.png(isOpaque: false) {    let imageFromPNGData = UIImage(data: data)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号