Я ищу в UIImage
в iOS
.Как уменьшить масштаб UIImage в IOS по размеру данных
Я видел другие вопросы ниже и их подход к тому, как уменьшить изображение по размеру. Resizing Images Objective-C
How to resize the image programmatically in objective-c in iphone
The simplest way to resize an UIImage?
Эти вопросы основаны на изменение размера изображения до определенного размера. В моем случае я ищу, чтобы изменить размер/уменьшить масштаб изображения на основе максимального размера.
В качестве примера я хотел бы установить максимальный размер NSData
размером 500 КБ. Я знаю, что я могу получить размер изображения, как это: // Проверить размер изображения возвращается
NSData *imageData = UIImageJPEGRepresentation(image, 0.5);
// Log out the image size
NSLog(@"%lu KB",(imageData.length/1024));
То, что я хотел бы сделать, это некоторая форма петли здесь. Если размер больше, чем максимальный размер, который я установил, я хотел бы немного уменьшить изображение, а затем проверить размер. Если размер по-прежнему слишком крупный, нажмите снова, а затем снова проверьте, пока он не станет меньше максимального установленного размера.
Я не уверен, какой лучший подход для этого. В идеале я не хочу масштабировать изображение до определенного размера все время, но только слегка уменьшает изображение каждый раз. Таким образом, у меня может быть самый большой (размер w/h) самого изображения и максимальный размер (байты). Если я немного уменьшусь только за раз, какой был бы лучший способ сделать это?
EDIT Чтобы подтвердить, я ищу, чтобы изменить размер фактического изображения, но изменить размер изображения таким образом, что оно меньше, чем максимальное NSData
Length. Например:
-проверить NSData
Длина
-Если выше максимума я хочу передать UIImage в метод
-Затем петлю с помощью этого метода несколько повторно проклейки фактический размер изображения каждый раз, когда
-Until него находится под максимальной длиной NSData
, а затем вернуть изображение?
Вы делаете это для оптимизации постоянного хранения или пропускной способности сети? (В этом случае игра с параметрами сжатия JPEG прекрасна.) Или вы пытаетесь контролировать, сколько памяти используется при загрузке изображений в объект 'UIImage'? (В этом случае параметры сжатия JPEG не очень актуальны, что приводит к потере качества изображения, не влияя на объем памяти.) – Rob
@Rob. Я делаю это для ограничений на загрузку. Я хотел бы масштабировать размер изображения в отличие от сжатия, чтобы сохранить качество. В настоящий момент использование памяти не является проблемой. – StuartM
Хорошо, тогда вы можете игнорировать мой ответ, но я буду держать его там для будущих читателей. – Rob