UserNotification中显示的图像的宽高比与图像在数据库中的存储方式有关

时间:2017-01-16 20:22:43

标签: ios swift firebase-storage aspect-ratio usernotifications

我正在使用新的UserNotifications框架在我的iOS应用的通知中包含图片附件。我从不同的数据库中提取图像,例如来自Facebook和我自己的Firebase数据库。

我有几个问题。

首先,如果我的firebase数据库显示通知图像并且高度大于宽度,并且高度超过通知的最大图像高度(我不确定具体是什么),图像是垂直压缩,纵横比不正确。请注意,在我的应用程序中正确显示了相同的图像。

其次,如果从Facebook的数据库显示通知图像并且高度大于宽度并且高度超过通知的最大图像高度,则将调整整个图像的大小以适应通知的最大允许高度图像,两侧留下白色竖条。

我想确保我存储到firebase的图像永远不会出现偏斜的宽高比。对于超过最大允许高度的图像,我想裁剪这些图像以避免两侧的白条。

另外值得注意的是,对于我存储到firebase的图像,无论是使用我的应用程序拍摄照片还是在原生iOS相机应用程序中拍摄照片并在以后上传,我都会得到相同的行为,这导致相信问题与图像如何存储到firebase相关,而不是图像的捕获方式以及它们是否包含适当的元数据。

我用来存储图片的Firebase相关代码就是:

if let uploadData = UIImageJPEGRepresentation(imageToStore, 0.1) {

        imageStorageRef.put(uploadData, metadata: nil, completion: { (metadata, error) in

…

1 个答案:

答案 0 :(得分:0)

一些想法:

  • curl -v这两个网址和比较标题,也许有一个明显的解决方案,因为Facebook图片有一些标题需要添加到您存储在Firebase存储中的图像中。
  • Facebook也可能使用类似于Imgix / Cloudinary的技术动态调整图像大小(请求适当高度/宽度的图像)。 You can integrate one of these providers relatively easily
  • 您可能需要在通知缩略图代码中构建一些额外的逻辑,以调整图像大小(NSHipster post)或将图像裁剪为适当的缩略图大小(docs)。