我正在将具有透明背景的图像上传到Firebase。当我以某种方式下载时,背景变成白色。任何想法如何解决这个问题?
这是我的putData函数。
let uploadData = imageview.image!.jpegData(compressionQuality: 0.75)
let uploadTask = imagesRef.putData(uploadData!, metadata: nil, completion: { (metadata, error) in
guard let metadata = metadata else {
return
}
这是下载功能。
URLSession.shared.dataTask(with: NSURL(string: imageURL as! String)! as URL, completionHandler: { (data, response, error) -> Void in
if error != nil {
print("ERROR LOADING IMAGES FROM URL: \(String(describing: error))")
DispatchQueue.main.async {
imageView.image = UIImage()
}
return
}
DispatchQueue.main.async {
if let downloadedImage = UIImage(data: data!) {
imageCache.setObject(downloadedImage, forKey: NSString(string: imageURL!))
imageView.image = downloadedImage
}
}
}).resume()
答案 0 :(得分:3)
我正在将具有透明背景的图像上传到Firebase。的 我以某种方式下载时背景变成白色。任何想法如何 解决这个问题?
您做对了,只是获得了 JPEG 而不是 PNG 数据;)请记住,JPEG不支持透明BG。
希望有帮助!