【问题标题】:BSImagePicker all Images blurredBSImagePicker 所有图像模糊
【发布时间】:2018-06-29 11:44:56
【问题描述】:

我使用 BSImagePicker 而不是 UIImagePicker 来启用多选。 我为此使用以下代码:

    let bsImagePicker = BSImagePickerViewController()
    bsImagePicker.maxNumberOfSelections = 4

    self.bs_presentImagePickerController(bsImagePicker, animated: true, select: { (asset : PHAsset) in

    }, deselect: { (asset : PHAsset) in

    }, cancel: { (assets : [PHAsset]) in

    }, finish: { (assets : [PHAsset]) in

        for asset in assets {

            self.selectedAssets.append(asset)

            self.convertAssetsToImage()
        }

    }, completion: nil)

为了将 PHAsset 转换为图像,我正在使用以下代码:

func convertAssetsToImage() {

    for asset in selectedAssets {

        let manager = PHImageManager.default()
        let option = PHImageRequestOptions()
        var thumbnail = UIImage()
        option.isSynchronous = true

        manager.requestImage(for: asset, targetSize: CGSize(width: 340, height: 365), contentMode: .aspectFit, options: option, resultHandler: {(result, info) -> Void in

            thumbnail = result!
        })

        self.selectedPhotos.append(thumbnail)
    }

    DispatchQueue.main.async {

        self.imageViewImage.animationImages = self.selectedPhotos
        self.imageViewImage.animationDuration = 5.0
        self.imageViewImage.startAnimating()
    }
}

但是所有图像都是模糊的。如果显示 ImagePicker,则所有图像都略微模糊,选择后图像仍然模糊。

这是选择屏幕的图像:

这是所选图像的图像:

例如,如果我使用的是 UIImagePicker,这是一张图片:

【问题讨论】:

    标签: ios uiimageview uiimagepickercontroller


    【解决方案1】:

    您可以添加这两个PHImageRequestOptions 来告诉照片提供高质量的图像(可能会牺牲速度)。

    option.deliveryMode = .highQualityFormat
    option.resizeMode = .exact
    

    【讨论】:

    • 什么都没有发生
    【解决方案2】:

    100% 为我工作 :)

                       let option = PHImageRequestOptions()
                        option.deliveryMode = .highQualityFormat
                        option.resizeMode = .exact
    
                        PHImageManager.default().requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .aspectFit, options: option) { (image, info) in
                            // Do something with image
                           
                        }
    

    【讨论】:

      猜你喜欢
      • 2015-06-10
      • 2021-08-26
      • 2014-06-13
      • 2015-09-19
      • 2019-02-02
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多