1

我正在使用新的 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

…
4

1 回答 1

1

一些想法:

  • 我会curl -v同时比较 URL 和标头,也许有一个明显的解决方案,因为 Facebook 图像有一些标头,您需要将这些标头添加到您存储在 Firebase 存储中的图像中。
  • Facebook 也可能使用类似于 Imgix/Cloudinary 的技术动态调整图像大小(请求具有适当高度/宽度的图像)。您可以相对容易地集成这些提供程序之一
  • 您可能需要在通知缩略图代码中构建一些额外的逻辑,以调整图像大小(NSHipster 帖子)或将图像裁剪为适当的缩略图大小(文档)。
于 2017-01-17T16:06:12.200 回答