Как сохранить изображение, полученное из UIImagePickerController, в виде файла HEIF?
Как обработать изображение, полученное из UIImagePickerController, как файл HEIF? Прямо сейчас, используя камеру в качестве типа источника, UIImagePickerControllerOriginalImage предоставляет мне только UIImage. Я хочу отправить изображение в формате HEIF на сервер. Предполагается, что для imageExportPreset установлено значение current.
1 ответ
Единственное, что я бы скорректировал с помощью решения sverin, это не использовал ctx.workingColorSpace, так как вы могли бы изменить пространство, в котором находится изображение. Например, вы можете заметить это, если перезагрузите изображение в UIImageView, и оно выглядит размытым,
Также обновлено для Swift 4.
do {
let ctx = CIContext()
let ciImage = CIImage(image: uiImage)
try ctx.writeHEIFRepresentation(of: ciImage!, to: url, format: .RGBA8, colorSpace: ciImage.colorSpace!, options: [:])
} catch {
print("ERROR", error.localizedDescription)
}
Старый вопрос, но в зависимости от того, как вы отправляете данные, у вас есть два варианта.
Запишите UIImage в физический файл и отправьте его.
do { let ctx = CIContext() let ciImage = CIImage(image: uiImage) try ctx.writeHEIFRepresentation(of: ciImage!, to: url, format: kCIFormatRGBA8, colorSpace: ctx.workingColorSpace!, options: [:]) } catch { print("ERROR", error.localizedDescription) }
Напишите UIImage для данных и отправьте
let ctx = CIContext() let ciImage = CIImage(image: uiImage) let data = ctx.heifRepresentation(of: ciImage!, format: kCIFormatRGBA8, colorSpace: ctx.workingColorSpace!, options: [:])