У меня есть ограничение на загрузку 2 МБ с моими изображениями. Поэтому, если пользователь пытается загрузить изображение размером более 2 МБ, я хотел бы уменьшить его размер, не уменьшая разрешение.Как уменьшить качество UIImage без уменьшения разрешения?
Как это достичь? Я пытался что-то вроде этого, но это не сработало:
var fileSize = UIImageJPEGRepresentation(image, 1)!.length
print("before File size:")
print(fileSize)
while fileSize > MyConstants.MAX_ATTACHMENT_SIZE{
let mydata = UIImageJPEGRepresentation(image, 0.75)
fileSize = mydata!.length
image = UIImage(data: mydata!)!
print("make smaller \(fileSize)")
}
print("after File size:")
print(UIImageJPEGRepresentation(image, 1)!.length)
выход:
before File size:
2298429
make smaller 846683
after File size:
2737491
Почему вы использовали цикл while? Вы можете использовать if() –
, тогда цикл while будет рекурсивно создавать изображение с качеством в 0,75 в отличие от условия if – akdsouza