2016-11-06 2 views
3

Я работаю над Instagram-подобным приложением на iOS, и мне интересно, как оптимизировать размер файла для каждого изображения, чтобы пользователи использовали как можно меньше данных при выборе все эти фотографии с моего бэкэнда. Похоже, что он будет дренировать данные, если вы загрузите файл так же, как это происходит, поскольку изображения с высоким разрешением составляют около 1,5 МБ. Есть ли способ уменьшить размер изображения при сохранении качества изображения в максимально возможной степени?Оптимизация размера изображения для меньшего использования данных

ответ

0

Вы можете сжать 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]; 

Надеется, что это будет разрешите вашу проблему.

Сжатие изображения будет потеряно в качестве изображения.

1

Вы действительно хотите настроить изображение по своему расположению? потому что для этого есть много библиотек.

которые эффективны и эффективны.

как,

AFNetworking Api

Его замечательно это может не только сжатые изображения, как на UIImageView текущего доступного размера в соответствии с разрешением устройства, но также дает вам гибкость кэша изображений.

Here is the link of Pod File and github

Просто попробуйте, вы будете любить его

+0

@More Вы можете использовать приложение cocoapod для его установки –

+0

Спасибо, я обязательно проверю его! –

+0

Нет проблем, вы можете проверить, и если у вас есть какие-либо вопросы, не стесняйтесь спрашивать снова, я скажу вам еще –

3

вы можете сжать изображение, сохранив его в JSon двоичных данных. ИЛИ просто двоичные данные ядра. Или элегантно Swift Realm - Базовые двоичные данные.

+2

вы также можете переконфигурировать с такими данными ядра: –

+2

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())) –

+2

это сообщение описывает больше о изменения размера изображения по темам http://nshipster.com/image-resizing/ –

Смежные вопросы