在将图像保存到 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()
}
如有任何建议,我们将不胜感激。
您需要做的就是在获取 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 或更高版本。