ios - 将 PHAsset 转换为 UIImage 时失去透明度

标签 ios swift image uiimage phasset

在我从图像选择器中选择图像并尝试将 PHAsset 转换为 UIImage 图像后,png 图像失去了透明度。 我试着到处搜索,但没有找到任何相关信息。

  func getAssetThumbnail(asset: PHAsset) -> UIImage {
        let manager = PHImageManager.defaultManager()
        let option = PHImageRequestOptions()
        var thumbnail = UIImage()
        option.synchronous = true
        manager.requestImageForAsset(asset, targetSize: CGSize(width: 341.0, height: 182.0), contentMode: .AspectFit, options: option, resultHandler: {(result, info)->Void in
            thumbnail = result!
        })
        return thumbnail
    }

Image before

IMAGE BEFORE

After selecting and setting it to image view

AFTER SELECTING AND SETTING IT TO IMAGE VIEW

最佳答案

使用 PHImageRequestOptions.version = 调用 requestImageDataForAsset 获取原始图像数据。原创。然后,您可以从 UIImage(data: data) 创建图像。

例子:

 func getThumbnail(asset: PHAsset) -> UIImage? {

    var thumbnail: UIImage?

    let manager = PHImageManager.defaultManager()

    let options = PHImageRequestOptions()

    options.version = .Original
    options.synchronous = true

    manager.requestImageDataForAsset(asset, options: options) { data, _, _, _ in

        if let data = data {
            thumbnail = UIImage(data: data)
        }
    }

    return thumbnail
}

关于ios - 将 PHAsset 转换为 UIImage 时失去透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38283416/

相关文章:

ios - 提交 App Store 时 Xcode 8 崩溃

ios - 将 if 语句更改为 guard 会引发此错误。条件绑定(bind)的初始化程序必须具有 Optional 类型,而不是 '(Bool, String)'

ios - TableView 中的单元格展开未在 Swift 中正确显示

ios - 如何快速履行零 promise

python - 将 .py 文件和图像转换为独立可执行文件

ios - 如何在 WatchKit 扩展目标(XCode7 beta 6)中重置 watchOS 部署目标

ios - 如何实时更改应用语言?

arrays - swift 数组方法 "starts(with:)"导致类型 "Range<Int>"的值没有数字 "starts"

css - 如何在div中获取图片?

php - 从 mysql 数据库中检索为 blob 图像时图像损坏