В фоновом потоке мое приложение должно читать изображения с диска, уменьшать их до размера экрана (1024x768 или 2048x1536) и сохранять их обратно на диск. Исходные изображения в основном из Camera Roll, но некоторые из них могут иметь больший размер (например, 3000x3000).
Позже, в другом потоке, эти изображения будут часто уменьшаться до разных размеров около 500x500 и снова сохраняться на диске.
Это заставляет меня задаться вопросом: какой самый эффективный способ сделать это в iOS, производительности и памяти? Я использовал два разных API:
- используя
CGImageSource
иCGImageSourceCreateThumbnailAtIndex
из ImageIO; - рисунок
CGBitmapContext
и сохранение результатов на диске с помощьюCGImageDestination
.
Оба работали для меня, но мне интересно, имеют ли они какую-либо разницу в производительности и использовании памяти. И если есть лучшие варианты, конечно.