이번 포스트에서는 멋사 iOS 앱 스쿨 최종 플젝을 할 때,
Persona (이하 사용자) 가 프로필 이미지를 업데이트하여 바꿀 경우
Storage에 이미지를 저장하는 과정에서 무료 사용량 한도 이상으로 데이터를 사용해
Storage가 터지는 현상을 방지하고자 내가 해결한 방법에 대해 작성해보려고 한다.
위 Image Picker에서
await userInfoStore.uploadPhoto(editImage.pngData())
editImage에 .pngData() 메서드로 설정을 해주었다.
↪ 모든 img가 png 형식으로 Storage에 저장되다보니 데이터가 커지고 Storage의 한도량에 금방 다다랐다.
그래서 img를 PNG화 시키지 않고 JPEG화 하는 방법을 찾아보았더니
jpegData(compressionQuality:) 메서드를 쓰면 된다고 한다.
await userInfoStore.uploadPhoto(editImage.jpegData(compressionQuality: 0.5))
여기서 compressionQuality 인수는 압축 퀄리티를 뜻하며
0.0 ~ 1.0 사이의 값을 받는다
퀄리티 값은 무난한게 0.5 값으로 줬다.
그리고 혹시 몰라서 pngData() 와 jpegData(compressionQuality: 0.5) 를 사용했을 때 Image Picker의 Byte 용량을 조사해 보았다.
pngData()
28060981 Byte, 11314250 Byte, 7063988 Byte, 11227530 Byte, 24888535 Byte, 18752666 Byte
jpegData(compressionQuality: 0.5)
2051228 Byte, 710070 Byte, 500606 Byte, 1060244 Byte, 835768 Byte, 692560 Byte
압축 퀄리티를 0.5로 잡고 JPEG로 설정했을 때, 평균적으로 약 93% 감소되었다.
위 해결방법으로 이미지 데이터 사용량을 줄일 수 있었다.