增加 Firebase 图像大小



请有人解释为什么会这样? 我正在检查,所以我直接从 firebase 上传了一张图片,我得到了它的原始大小,但是当我使用此代码上传它时,尺寸会增加。

func storeImageInFirebase(){
let storeageRef = Storage.storage().reference()
let imageName = UUID().uuidString
let imagesReference = storeageRef.child("images").child(imageName + ".jpeg")
let imageData = self.imgView.image?.jpegData(compressionQuality: 1)
let metaData = StorageMetadata()

metaData.contentType = "image/jpeg"
imagesReference.putData(imageData!, metadata: metaData){ (metadate, error)
in
guard metadate != nil else{
print("Error: (String(describing: error?.localizedDescription))")
return
}
// Fetch the download URL
imagesReference.downloadURL(completion: {(url, error)
in
if error != nil {
print("Faild to download url:", error!)
return
}else{
print("original image url ..... (url?.absoluteString)")
// show the url in real database
var theUsedURL = self.imgURL = (url?.absoluteString)!
self.sendDataToFirebase()
}
})
}
}

在此处输入图像描述

JPEG 是一种有损文件格式:它以压缩的方式存储图像数据,具体取决于所使用的压缩因子。

图像视图中的图像数据始终是未压缩的:它显示图像的原始字节。

最有可能的是,您是:

  1. 从 JPEG 文件中读取压缩数据,然后
  2. 在图像视图中显示该数据的未压缩版本,最后
  3. 将数据作为未压缩(或压缩较少(的 JPEG 文件写回存储。

如果要控制压缩图像的大小,可以在以下位置修改compressionQuality

jpegData(compressionQuality: 1)

如果要写入完全相同的文件,则不应重新压缩数据,而应读取未压缩的数据并将确切的数据直接写回存储。

最新更新