0

Я использую новую структуру UserNotifications для включения вложений изображений в уведомления для моего приложения iOS. Я вынимаю изображения из разных баз данных, таких как из Facebook, а также из моей собственной базы данных Firebase.Формат изображения, отображаемого в UserNotification в отношении того, как изображения хранятся в базе данных

У меня есть пара вопросов.

Во-первых, если изображение уведомления отображается в моей базе данных firebase, а высота больше ширины, а высота превышает максимальную высоту изображения для уведомления (я не уверен, что именно это), изображение сжимается вертикально, а соотношение сторон неверно. Обратите внимание, что одни и те же изображения отображаются в моем приложении правильно.

Во-вторых, если изображение уведомления отображается из базы данных Facebook, а высота больше ширины, а высота превышает максимальную высоту изображения для уведомления, то все изображение будет изменено в соответствии с максимально допустимой высотой для изображение уведомления, оставляя белые вертикальные полосы с обеих сторон.

Я хотел бы обеспечить, чтобы изображения, которые я хранил в firebase, никогда не были представлены с искаженным соотношением сторон. И для изображений, которые превышают максимально допустимую высоту, я хотел бы обрезать эти изображения, чтобы избежать белых полос с обеих сторон.

Также стоит отметить, что для изображений, которые я храню для firebase, я получаю то же поведение, что и фотография сделана с моим приложением или взята в приложении для камеры iOS и загружена позже, что приводит к тому, что проблема связана с тем, как изображения хранятся в firebase, в отличие от того, как захватываются изображения и включают ли они соответствующие метаданные.

Связанная Firebase код, я использую для хранения изображений просто:

if let uploadData = UIImageJPEGRepresentation(imageToStore, 0.1) { 

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

… 

ответ

0

Несколько мыслей:

  • Я curl -v как URL-адреса и сравнение заголовков, может быть, есть очевидное решение в том, что на изображении Facebook есть заголовок, который нужно добавить к изображениям, хранящимся в Firebase Storage.
  • Facebook также может изменять размер изображения на лету (запрашивая изображение соответствующей высоты/ширины) с использованием технологии, аналогичной Imgix/Cloudinary. You can integrate one of these providers relatively easily.
  • Возможно, вам понадобится создать дополнительную логику в миниатюре уведомлений, чтобы изменить размер изображения (NSHipster post) или обрезать изображение до соответствующего размера миниатюры (docs).
Смежные вопросы