Я имею тенденцию явно указывать, насколько велико изображение, используя CIContext
и создавая CGImage определенного размера вместо простого UIImage(ciImage:)
. Попробуйте это, предполагая, что ваш inputImage называется coreGraphics
:
let ciCtx = CIContext()
let cgiig = ctx.createCGImage(selectivelyFocusedCIImage, from: coreImage.extent)
let uiImage = UIImage(cgImage: cgIMG!)
Несколько заметок ....
(1) Я вытащил этот код из приложения, которое я закрываю. Это непроверенный код (включая принудительное развертывание), но концепция того, что я делаю, является твердой.
(2) Вы не объясняете многое из того, что вы пытаетесь сделать, но когда я вижу переменную с именем selectivelyFocusedCIImage
, меня беспокоит, что вы можете пытаться использовать CoreImage более интерактивным способом, чем "просто "создание одного изображения. Если вам нужна производительность «почти в реальном времени», визуализируйте CIImage в формате (устаревшем в iOS 12) GLKView
или MTKView
вместо UIImageView
. Последний использует только процессор, где два первых используют графический процессор.
(3) Наконец, слово предупреждения на CIContexts
- создавать их дорого! Обычно вы можете закодировать его так, чтобы в вашем приложении был только один контекст, которым может поделиться все.