在将PHAsset转换为UIImage时失去透明度 [英] While converting PHAsset to UIImage losing transparency

查看:364
本文介绍了在将PHAsset转换为UIImage时失去透明度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从Image选取器中选择图像并尝试将PHAsset转换为UIImage图像后,png图像的透明度将会下降。
我尝试到处搜索,但没有发现任何相关内容。

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

推荐答案

通过调用 requestImageDataForAsset with PHImageRequestOptions.version =。原始。然后,您可以从 UIImage(数据:数据)创建图像。

Get the original image data by calling requestImageDataForAsset with PHImageRequestOptions.version = . Original. You can then create the image from 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
}

这篇关于在将PHAsset转换为UIImage时失去透明度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆