美文网首页Swift编程Swift swift
Swift_通过相册选取图片,进行裁切有黑条

Swift_通过相册选取图片,进行裁切有黑条

作者: Mccc_ | 来源:发表于2018-07-05 19:51 被阅读69次

    问题描述

    当使用相册里面的图片,打开了allowsEditing属性,使用UIImagePickerControllerEditedImage编辑过的图片时候,图片某一个或几个边上有黑边。
    出现的条件:

    • 这种情况只有在使用相册功能(拍照没影响)
    • 在使用UIImagePickerControllerEditedImage,使用UIImagePickerControllerOriginalImage不受影响
    • 图片宽度要小于高度的情况下

    如图所示:


    素材图片

    原因

    据说是iOS相册上的bug。

    解决问题

    还是继续打开allowsEditing,但是使用UIImagePickerControllerOriginalImage,并获取UIImagePickerControllerCropRect。 然后根据这个rect在originalImage上裁切出来一个editImage.

    let originalImage : UIImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    
    let rect = info[UIImagePickerControllerCropRect] as! CGRect
    
    let editedImage = originalImage.MCImageCrop(toRect: rect)
    
        // 通过rect,裁切图片
        func MCImageCrop(toRect:CGRect) -> UIImage {
    
            let imageRef = self.cgImage?.cropping(to: toRect)
            let image = UIImage.init(cgImage: imageRef!, scale: self.scale, orientation: self.imageOrientation)
            
            return image
        }
    

    相关文章

      网友评论

        本文标题:Swift_通过相册选取图片,进行裁切有黑条

        本文链接:https://www.haomeiwen.com/subject/qjqmuftx.html