在保存到核心数据之前调整图像大小

问题描述 投票:0回答:1

在将图像保存到 Core Data 之前调整图像大小的通常过程是什么?

我希望能够在将图像保存到 Core Data 之前将其大小调整为 75px75p 以最小化其大小。图像可以直接来自照片库或相机。我有一种感觉,我目前保存它的方式,它保存了一个巨大的文件大小,而实际上我只需要一个缩略图(75x75)。

这是我目前保存它的方式。

核心数据对象:

Item

属性:

image: Binary Data

// image is passed to the addItem function directly from an Image Picker
func addItem(name:String, image:UIImage?){
    if let image = image {
        imageData = image.jpegData(compressionQuality: 0.1)!
    }else{
        imageData = nil
    }
    item.name = name
    item.image = imageData
    self.manager.save()
}

如有任何建议,我们将不胜感激。

swift core-data
1个回答
0
投票

您需要做的就是在获取 JPEG 数据之前缩放图像。

func addItem(name: String, image: UIImage?) {
    let size = CGSize(width: 75, height: 75)
    var imageData: Data? = nil
    if let thumb = image?.preparingThumbnail(of: size) {
        imageData = thumb.jpegData(compressionQuality: 1.0)
    }

    item.name = name
    item.image = imageData
    self.manager.save()
}

请注意,

preparingThumbnail(of:)
确实需要 iOS 15.0 或更高版本。

© www.soinside.com 2019 - 2024. All rights reserved.