7

カスタムに保存されてobj-сいる特定のサイズをどのように取得しますか? それが私がやりたい最初のことです。2 つ目は、画像のファイル サイズ (15 MB とします) が自分のファイル サイズの制限 (5 MB とします) よりも大きいことを知っている場合、画像をファイル サイズの制限 (4.99 など) に最も近くなるように圧縮する方法です。 MB?UIImageNSMutableArray

4

1 に答える 1

16

私はstacjオーバーフローリンクに関する別の質問でこれを見ました -サイズによる画像圧縮 - iPhone SDK

しかし、そこから2つの回答を組み合わせています。このコードを使用して圧縮も行いました。

CGFloat compression = 0.9f;
CGFloat maxCompression = 0.1f;
int maxFileSize = 250*1024;

NSData *imageData = UIImageJPEGRepresentation(yourImage, compression);

while ([imageData length] > maxFileSize && compression > maxCompression)
{
    compression -= 0.1;
    imageData = UIImageJPEGRepresentation(yourImage, compression);
}

これを行う 1 つの方法は、目的のサイズが見つかるまでファイルをループで再圧縮することです。最初に高さと幅を見つけて、圧縮率を推測し(画像が大きいほど圧縮率が高くなります)、圧縮後にサイズを確認し、差を再度分割します。

これが非常に効率的ではないことはわかっていますが、特定のサイズの画像を実現するための単一の呼び出しがあるとは思いません。

于 2013-09-19T16:49:45.637 に答える