Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UserNotification中显示的图像的纵横比与图像在数据库中的存储方式有关_Ios_Swift_Firebase Storage_Aspect Ratio_Usernotifications - Fatal编程技术网

Ios UserNotification中显示的图像的纵横比与图像在数据库中的存储方式有关

Ios UserNotification中显示的图像的纵横比与图像在数据库中的存储方式有关,ios,swift,firebase-storage,aspect-ratio,usernotifications,Ios,Swift,Firebase Storage,Aspect Ratio,Usernotifications,我正在使用新的UserNotifications框架在iOS应用程序的通知中包含图像附件。我从不同的数据库中提取图像,比如Facebook和我自己的Firebase数据库 我有几个问题 首先,如果从我的firebase数据库显示通知图像,高度大于宽度,并且高度超过通知的最大图像高度(我不确定具体是什么),则图像会垂直压缩,纵横比不正确。请注意,我的应用程序中正确显示了相同的图像 其次,如果Facebook数据库中显示通知图像,且高度大于宽度,且高度超过通知的最大图像高度,则整个图像将调整大小以适

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

…
一些想法:

  • 我会
    curl-v
    同时使用URL和比较标题,也许有一个明显的解决方案,Facebook图像有一些标题,您需要添加到存储在Firebase存储中的图像中
  • Facebook也可能正在使用类似于Imgix/Cloudinary的技术动态调整图像大小(请求适当高度/宽度的图像)
  • 您可能需要在通知缩略图代码中构建一些额外的逻辑,以调整图像大小()或将图像裁剪为适当的缩略图大小()