Я создал очень простой пример, чтобы продемонстрировать проблему, которая заключается в загрузке изображения и его рендеринге в данные.
Код: Выделить всё
let context = CIContext()
let imageUrl = Bundle.main.url(forResource: "12mp", withExtension: "jpg")!
let data = try! Data(contentsOf: imageUrl)
let ciImage = CIImage(data: data)!
let start = CFAbsoluteTimeGetCurrent()
let data = context.jpegRepresentation(of: ciImage, colorSpace: context.workingColorSpace!)
print(data?.count)
print("Resize Completed: " + String(CFAbsoluteTimeGetCurrent() - start))
- 12MP
strong> => 0,03 с - 24 МП => 1,22 с
- 48 МП => 2,98 сек.
Из профилирования процесса видно, что декодирование JPEG является узким местом. Это для изображения с разрешением 48 МП:

Можно ли как-нибудь это улучшить?
Любая помощь приветствуется!
Подробнее здесь: https://stackoverflow.com/questions/793 ... core-image