While converting PHAsset to UIImage losing transparency

穿精又带淫゛_ 提交于 2020-01-02 08:00:30

问题


After I pick an image from Image picker and try to convert PHAsset to UIImage image is losing transparency of the png Image. I tried searching everywhere but didn't find anything about it.

  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

After selecting and setting it to image view


回答1:


Get the original image data by calling requestImageDataForAsset with PHImageRequestOptions.version = . Original. You can then create the image from UIImage(data: data).

Example:

 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
}


来源:https://stackoverflow.com/questions/38283416/while-converting-phasset-to-uiimage-losing-transparency

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!