Существует разница между «сжатием» и «повторной выборкой». Сжатие - это способ уменьшить размер документа, например GZip. Хотя в Objective-C нет никаких стандартных интерфейсов, чтобы помочь вам в этом, есть несколько расширений для NSData как категории, которую вы можете использовать для добавления сжатия GZip.
Однако это само по себе не поможет. Изображения JPEG, как правило, плохо сжимаются, поэтому вам действительно нужно ресэмплинг или настройка самого изображения. Это отбрасывает некоторые данные, делая их меньше, но и хуже по качеству. Это цель 0.2 в конце - 0.0 - это максимальное сжатие, которое вы можете получить из библиотеки. Вы можете пытаться вызывать его с помощью постоянно небольших чисел (скажем, в цикле for), пока не получите размер изображения приемлемого качества.
Если это не удастся, вам придется изменить размер, нарисовав изображение в CGContextDrawImage с указанным размером в буфере CG (из CGBitmapContextCreate), а затем получить новое изображение из полученного результата и начать заново.