Я работаю над Instagram-подобным приложением на iOS, и мне интересно, как оптимизировать размер файла для каждого изображения, чтобы пользователи использовали как можно меньше данных при выборе все эти фотографии с моего бэкэнда. Похоже, что он будет дренировать данные, если вы загрузите файл так же, как это происходит, поскольку изображения с высоким разрешением составляют около 1,5 МБ. Есть ли способ уменьшить размер изображения при сохранении качества изображения в максимально возможной степени?Оптимизация размера изображения для меньшего использования данных
ответ
Вы можете сжать UIImage путем преобразования его в NSData
UIImage *rainyImage =[UImage imageNamed:@"rainy.jpg"];
NSData *imgData= UIImageJPEGRepresentation(rainyImage,0.1 /*compressionQuality*/); // Second parameter of this function is the compression Quality
Теперь используйте этот NSData
объект, чтобы сохранить или преобразовать его в UIImage
Для того, чтобы превратить его снова в UIImage
UIImage *image = [UIImage imageWithData:imgData];
Надеется, что это будет разрешите вашу проблему.
Сжатие изображения будет потеряно в качестве изображения.
Вы действительно хотите настроить изображение по своему расположению? потому что для этого есть много библиотек.
которые эффективны и эффективны.
как,
AFNetworking Api
Его замечательно это может не только сжатые изображения, как на UIImageView текущего доступного размера в соответствии с разрешением устройства, но также дает вам гибкость кэша изображений.
Here is the link of Pod File and github
Просто попробуйте, вы будете любить его
вы можете сжать изображение, сохранив его в JSon двоичных данных. ИЛИ просто двоичные данные ядра. Или элегантно Swift Realm - Базовые двоичные данные.
вы также можете переконфигурировать с такими данными ядра: –
let image = CIImage (contentsOfURL: self.URL) let filter = CIFilter (имя: "CILanczosScaleTransform")! filter.setValue (изображение, forKey: "inputImage") filter.setValue (0,5, forKey: "inputScale") filter.setValue (1,0, forKey: "inputAspectRatio") пусть outputImage = filter.valueForKey ("outputImage") в виде! CIImage Пусть контекст = CIContext (варианты: [kCIContextUseSoftwareRenderer ложь]) пусть scaledImage = UIImage (CGImage: self.context.createCGImage (outputImage, fromRect: outputImage.extent())) –
это сообщение описывает больше о изменения размера изображения по темам http://nshipster.com/image-resizing/ –
@More Вы можете использовать приложение cocoapod для его установки –
Спасибо, я обязательно проверю его! –
Нет проблем, вы можете проверить, и если у вас есть какие-либо вопросы, не стесняйтесь спрашивать снова, я скажу вам еще –