Преобразование heic в JPG и получение местоположения файла - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь загрузить несколько изображений в бэкэнд, но бэкэнд, с которым я работаю, не поддерживает формат heic для изображения.Поэтому я хочу преобразовать эти heic-изображения в JPG и загрузить их вместе с расположением файла.Я использую метод ниже, чтобы загрузить изображения из файла.

func uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

Я использую PHAsset для получения fileURL.

1) Итак, как я могу преобразовать heic-изображение в JPG с потерей какого-либо качества и получить местоположение файла?

2) Если мы преобразуем изображение heic в JPG, увеличится ли размер изображения?

1 Ответ

0 голосов
/ 17 октября 2018

Я придумал решение.Когда мы получаем FileURL от PHAsset, если Image является HGIC, вы можете преобразовать его в UIImageJPEGRepresentation и получить данные.Затем вы можете использовать метод ниже для загрузки данных

func uploadTask(with request: URLRequest, from bodyData: Data) -> URLSessionUploadTask

Если это JPG, вы можете использовать fileURL (вы можете использовать это для любого fileURL, если ваш бэкэнд поддерживает этот формат файла, в моем случае бэкэнд неподдержка формата HGIC, поэтому мне пришлось преобразовать его в данные)

func uploadTask(with request: URLRequest, fromFile fileURL: URL) -> URLSessionUploadTask

Есть некоторые недостатки, когда мы конвертируем HGIC в JPG или PNG ::

1) Здесь, когда мы конвертируем HGICизображение в JPG, процессор и использование памяти будут выше.

2) При преобразовании изображения размер будет выше.Например, преобразование в 1,0 (наивысшее-максимальное качество) может увеличить размер файла (файл JPG) до 30-35%

...