画像にアップロード制限が2 MBあります。ユーザーが2MB以上の画像をアップロードしようとすると、解像度を下げることなくサイズを縮小したいと考えています。解像度を下げずに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
なぜループを使用しましたか? if() –
whileループはif条件とは異なり、0.75の画質で再帰的に画像を作成します。 – akdsouza